Go: package main

import (
        "fmt"
        "math"
)

var interests [101]float64

func main() {
        var m int
        fmt.Scanf("%d", &m)
        fmt.Printf("%d\n", int(math.Ceil(interest(m)*10))*10000)
}

func interest(m int) (i float64){
        if interests[m] > 0 {
                return interests[m]
        }

        if m == 0 {
                interests[0] = 1.0
                return interests[0]
        }

        if m == 1 {
                interests[1] = 1.05
                return interests[1]
        }
        interests[m] = interest(m/2) * interest(m/2) * interest(m%2)
        return interests[m]
}

C++: #include <iostream>
#include <math.h>
using namespace std;
 
void test();
int  interest(int debt, float interest_rate, int n);
 
int main(void)
{
    test();
    return 0;
}
 
void test()
{
    int debt,n;
    float interest_rate;
    debt = 100000;
    interest_rate = 1.05;
    cin >> n;
 
    debt = interest(debt, interest_rate, n);
 
    if (debt % 1000 > 0)
    {
        debt = debt - debt % 1000 + 1000;
    }
    cout << debt << endl;
}
 
int interest(int debt, float interest_rate,int n)
{
 
    if (n == 0)
        return debt * interest_rate;
    else
        return interest(debt, interest_rate, n - 1) * interest_rate;
}

C++: #include<iostream>
int main(){int w,m=100000;for(std::cin>>w;w--;m=(m+999)/1000*1000)m+=m*5/100;std::cout<<m<<'\n';}

C++: #include<iostream>

using namespace std;

int main()
{
	int n;
	int debt = 100000;
	int temp = 100000;
	
	cin >> n;
	
	for(int i = 0; i < n; i++){
		debt *= 1.05;
	}
	
	for(int i = 0;; i++){
		temp += (10000*i);
		if(temp > debt){
			break;
		}
	}
	
	cout << temp << endl;
}

C++: #include<iostream>

int main(){
	int n, ans = 100000;
	std::cin >> n;
	for (int i = 0; i < n; ++i){
		ans *= 1.05;
		--ans;
		ans += 1000 - (ans % 1000);
	}
	std::cout << ans << std::endl;
	return 0;
}

C++: 
/* vo00_07.cpp */
#include <iostream>
using namespace std;

int main()
{
	double debt = 100000;

	int n;
	cin >> n;
	
	while (n--) {
		debt *= 1.05;
		debt /= 1000;

		debt += 0.999;

		int t1 = debt;
		double t2 = debt - t1;
		debt -= t2;

		debt *= 1000;
	}

	cout << (int)debt << '\n';

	return 0;
}

C++: #include <iostream>
using namespace std;
//1000未満切り上げ
int main(){
  int weeks;
  int debt = 100000;
  cin >> weeks;
  for(int i=0;i<weeks;i++){
    debt*1.05;
    if(debt%1000)
      debt += (1000 - debt%1000);
  }
  cout << debt <<endl;
}

C++: #include <iostream>

using namespace std;

int main() {
	int n; cin >> n;
	int ans = 100000;
	int tmp;
	for (int i=0; i<n; i++) {
		ans *= 1.05;
		tmp = ans / 1000 * 1000;
		if (tmp != ans) ans = tmp + 1000;
	}
	cout << ans << endl;
	return 0;
}

C++: #include <iostream>
#include <cmath>
using namespace std;

int main() {
double n; cin >> n;
double ret = 100000;
for(int i=0; i<n; i++) {
ret *= 1.05;
ret /= 1000;
ret = ceil(ret) * 1000;
}
cout << ret << endl;
return 0;
}

C++: #include <iostream>

int main(){
 long long int Debt = 100000;
 int n;

 cin >> n;

 for (int i=0; i<n; i++) Debt = Debt * 1.05;
 if(Debt % 10000 > 0) Debt = Debt + 10000;

 return 0;
}

C++: #include <iostream>
using namespace std;

int main(){
	int N;
	cin>>N;
	int res=100000;
	for(int i=1;i<=N;i++){
		res=res*105/100;
		res=(res+999)/1000*1000;
	}
	cout<<res<<endl;
	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;

int main() {
	int n;
	cin >> n;

	int a = 100000;
	for (int i = 0; i < n; i++) {
		a *= 1.05;
		int n = a % 1000;

		if (n) {
			a -= n;
			a += 1000;
		}
	}

	cout << a << endl;
}

C++: #include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <cmath>
//ranker
using namespace std;

#define REPS(i, a, n) for (int i = (a); i < (n); ++i)
#define REP(i, n) REPS(i, 0, n)
#define RREP(i, n) REPS(i, 1, n + 1)
#define DEPS(i, a, n) for (int i = (a); i >= n; --i)
#define DEP(i, n) DEPS(i, n, 0)

using ll = long long;
using ull = unsigned long long;
using vi = vector<int>;
using vvi = vector<vi>;
using vvvi = vector<vvi>;
using pii = pair<int, int>;
using pis = pair<int, string>;
using psi = pair<string, int>;
using D = double;


const int Max=10000000;
bool prime[Max];
int main(void){
  int n, sum=100000;
  cin >> n;

  for(int i=0; i<n; i++){
    sum *= 1.05;
    if(sum%1000 != 0) sum = (sum/1000+1)*1000;
  }
  cout << sum << endl;
}

C++: #include<iostream>
using namespace std;

int main(){
	int n, output = 100000;
	cin >> n;
	for (int i = 0; i < n; i++){
		output *= 1.05;
		if (output % 1000 != 0){
			output += 1000;
			output -= output % 1000;
		}
	}
	cout << output << endl;
	return 0;
}

C++: #include<algorithm>
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;

#define rep(i,n) for(int i=0; i<n; i++)
int main(){
	int debt=100000;
	int n;
	cin >> n;
	rep(i,n){
	   if(debt%20000==0)debt = debt*1.05;
	   else debt = (int)(debt*1.05/1000+1)*1000;
	}
	cout << debt << endl;
    return 0;
}

C++: #include <bits/stdc++.h>
#define rep(i, a, n) for(int i = a; i < n; i++)
#define repb(i, a, b) for(int i = a; i >= b; i--)
#define all(a) a.begin(), a.end()
#define int long long
using namespace std;
typedef pair<int, int> P;

signed main(){
	int n;
	cin >> n;
	int now = 100000;
	rep(i, 0, n){
		now += now / 20;
		now = (now + 999) / 1000;
		now *= 1000;
	}
	cout << now << endl;
}

C++: #include <iostream>
using namespace std;
int main(){
    int n;cin>>n;
    int nw = 100000;
    for(int i = 0; n > i; i++){
        int z = (nw/100*105);
        int t = z/1000*1000;
        if(z%1000){
            t += 1000;
        }
        nw = t;
    }
    cout << nw << endl;
}

C++: #include <iostream>
#include <math.h>
using namespace std;

void test();
int  interest(int debt, float interest_rate, int n);

int main(void)
{
	test();
	return 0;
}


void test()
{
	int debt,n;
	double money;
	float interest_rate;
	debt = 100000;
	interest_rate = 1.05;
	cin >> n;

	debt = interest(debt, interest_rate, n);

	money = (double) debt / 1000;// 1000?????\???????°???°?????\??????

	money = ceil(money) * 1000;// ?°???°?????\?????????????????????????????????

	debt = money;

	cout << debt << endl;
}

int interest(int debt, float interest_rate,int n)??????//?????°??¢??°
{

	if (n == 1)
		return debt * interest_rate;
	else
		return interest(debt, interest_rate, n - 1) * interest_rate;
}

C++: 
//http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0007&lang=jp

#include <algorithm>
#include <iostream>
#include <vector>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

using namespace std;

//テ」ツδ榲」ツつッテ」ツδュテ・ツョツ堙ァツセツゥ
#define ALL(v) (v).begin(),(v).end()
#define ARRAY_LENGTH(array) (sizeof(array) / sizeof(array[0]))
#define REP(i,a,b) for(int i=(int)(a); i<(int)(b); ++i)
#define rep(i,n) for(int i=0;i<(int)(n);++i)
#define SORT(x) sort(begin(x),end(x))
#define SELECT_SORT(x, n) sort(begin(x),begin(x)+n)
#define SWAP(type, a, b) do {type tmp = a; a = b; b = tmp;} while (0)
#define rep_split(tok,a_str,re) for(char *tok = strtok((char *)a_str.c_str(),re); tok != NULL; tok = strtok(NULL,re))

//テ・ツョツ堙ヲツ閉ー
#define INF 2000000000000
#define MAX 10

//DEBUGテァツ板ィ
#define BAR() cout << "----------------------------" << endl;
#define DUMP(v) (cerr << #v << ": " << v << endl)
#define PRINT(list) cout << "{ "; for(auto nth : list){ cout << nth << " "; } cout << "}" << endl;


int yami_kin(int money)
{
	int risoku = money*0.05;
	money = money + risoku;
	
	if(money % 1000 == 0){
		return money;
	}else{
		return (money - (money%1000)) + 1000;
	}
}

int main()
{
	int money= 100000; //10テ、ツクツ?・ツ??
	int n=0;
	cin >> n;
	for(int i=0; i<n; i++){
		money = yami_kin(money);
		//cout << money << endl;
	}
	cout << money << endl;
	
}