Go: package main

import (
	"fmt"
	"os"
	"bufio"
	"strconv"
	"math"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	
	for scanner.Scan() {
		n, _ := strconv.Atoi(scanner.Text())
		debt := 100000 * math.Pow(1.05, float64(n))
		fmt.Println(math.Ceil(debt*0.0001)*10000)
	}
}

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

#define FOR(i,a,b) for(long long int i=(a);i<(b);i++)
#define REP(i,n) for(long long int i=0;i<(n);i++)
#define ALL(s) (s).begin(),(s).end()

#define PI 3.14159265358479

typedef long long int ll;
typedef vector<long long int> vi;

int main(){
	ll n,m=100000;
	cin >> n;
	REP(i, n){
		m *= 1.05;
		if (m % 1000 != 0){
			m -= m % 1000;
			m += 1000;
		}
		cout << m;
	}
	cout << m << "\n";
}

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

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

}

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

double cutup(double x) {
  if (x - (double)((int)x / 1000) * 1000 > 0) {
    x = (double)((((int)x / 1000) + 1) * 1000);
  }
  return x;
}

double money(double x, int target, int depth = 0) {
  if (target == depth) { return x; }
  return money(cutup(x * 1.05), target, depth + 1);
}

int main() {
  std::cin.tie(0);
  std::ios::sync_with_stdio(false);

  int n, x;
  cin >> n;

  printf("%.0f\n", money(100000., n));

  return 0;
}

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

int main() {
	int money = 100000;
	int week;
	cin >> week;
	for (int i = 0; i < week; i++) {
		money = money*1.05;
		if (money % 1000 == 0)continue;
		else money = 1000 * (money / 1000 + 1);
	}
	cout << money << endl;
}

C++: #include <iostream>
using namespace std;
int main()
{
    int n,m=100000;
    cin>>n;
    for(int i=0;i<n;++i){
        m*=1.05;
    }
    if(m%10000){
        int a;
        a=m%10000;
        m+=10000-a;
    }
    cout<<m<<endl;
    return 0;
}

C++: #include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int n;
    double debt = 100000;

    cin >> n;
    
    for (int i = 0; i < n; ++i) {
        debt *= 1.05;
        debt = ceil(debt / 1000) * 1000;
    }
    cout << debt << endl;

    return 0;
}

C++: #include <iostream>

int main()
{
	int weeks = 0;
	int amount = 100000;
	std::cin >> weeks;
	for (int i = 0; i < weeks; ++i) {
		amount = amount * 105 / 100;
		amount = (amount + 999) / 1000 * 1000;
	}
	std::cout << amount << std::endl;

	return 0;
}

C++: #include <iostream>
#include <math.h>
using namespace std;
int main(void){
   int a;
   float b = 100000.0f;
   std::cin >> a;
   for(int i = 0; i < a; i++){
       b *= 1.05f;
       b /= 1000;
       double c = ceil(b);
       b = c * 1000;
   }
   std::cout << b << std::endl;
}

C++: #include<iostream>
#include<cmath>

int main()
{
	int n;
	double debt;
	while (std::cin >> n)
	{
		debt = 100000;
		for (int i = 0; i < n; ++i)
		{
			debt += debt / 20;
			debt /= 1000;
			debt = std::ceil(debt);
			debt *= 1000;
		}
		std::cout << static_cast<long>(debt) << std::endl;
	}
	return 0;
}

C++: #include <iostream>
#include <cmath>
using namespace std;
int main() {
  int n;
  cin >> n;
  long c = 100000;
  for (int i = n; i > 0; i--) {
    c = ceil(c * 1.05 / 1000) * 1000;
  }
  cout << c << endl;
}

C++: #include <iostream>

int main(){
	int n,debt=100000;
	std::cin>>n;
	for(int i=0;i<n;i++) debt*=1.05;
	std::cout<<(debt%1000 ? debt/1000*1000+1000 : debt)<<'\n';
	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
	int n, S = 100000;
	cin >> n;
	for (int i = 0; i < n; i++){
		S = S + S*0.05;
		S = (S / 1000) * 100;
	}
	cout << S << endl;
	return 0;
}

C++: #include<stdio.h>

int main(){
  int i,n;
  int sum = 100000;
  scanf("%d", &n);
  for(i=0;i<n;i++){
    sum=sum*1.05;
    if(sum%1000!=0)
      { 
	sum=sum/1000;
	sum=(sum+1)*1000;
      }
    
  }
  printf("%d\n", sum);

  return 0;
}

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

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

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

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

C++: #include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cfloat>
#include <map>
#include <utility>
#include <set>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
#include <sstream>
#include <complex>
#include <stack>
#include <queue>

using namespace std;
static const double EPS = 1e-10;

int main(){
	int n;
	int debt = 100000;

	cin >> n;

	for(int i = 0; i < n; i++){
		debt += debt/20;
		if((debt % 1000) != 0){
			debt += 1000;
		}
		debt = debt/1000*1000;
	}

	cout << debt;

	return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
int main(){
  int n,ten=100000;
  cin>>n;
  for(int i=1;i<=n;i++){
    ten+=ten/20;
  }
  cout<<ten/10000*10000+10000<<endl;
}

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

int main() {
  int debt, n;
  debt = 100000;
  cin >> n;

  while(n-- > 0) {
    debt += debt*0.05;
    if(debt%1000 != 0)
      debt += 1000 - debt%1000;
  }

  cout << debt << endl;

  return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
double n,p=100000;
cin >> n;
for(;n;n--){
	p*=1.05;
}
p=p/10000+0.5;
cout << (int)p*10000 << endl;
return 0;
}

C++: #include <iostream>

#define DEBT 100000

using namespace std;

int main() {
	int		n;
	double	tmp;
	int		debt = DEBT;
	cin >> n;
	for (int i = 0; i < n; ++i) {
		debt *= 1.05;
		tmp = debt / 1000.0;
		if ((debt > (int)tmp * 1000)) {
			debt = (int)tmp * 1000 + 1000;
		}
		else {
			debt = (int)tmp * 1000;
		}
	}
	cout << debt << endl;
}

C++: #include <bits/stdc++.h>
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define rep(i,n) for (int i=0;i<(int)(n);i++)
#define codefor int test;scanf("%d",&test);while(test--)
#define yn(ans) cout<<(ans?"Yes":"No")<<endl
#define YN(ans) cout<<(ans?"YES":"NO")<<endl
#define umap unordered_map
#define uset unordered_set
using namespace std;
using ll = long long;
//入力系
void scan(int& a){scanf("%d",&a);}
void scan(long long& a){scanf("%lld",&a);}
template<class T> void scan(T& a){cin>>a;}
template<class T> void scan(vector<T>& vec){for(auto&& it:vec)scan(it);}
void in(){}
template <class Head, class... Tail> void in(Head& head, Tail&... tail){scan(head);in(tail...);}
//出力系
void print(int& a){printf("%d",a);}
//void print(long long& a){printf("%lld",a);}
void print(double& a){printf("%.15lf",a);}
template<class T> void print(T& a){cout<<a;}
template<class T> void print(vector<T>& vec){if(vec.empty())return;print(vec[0]);for(auto it=vec.begin();++it!= vec.end();){putchar(' ');print(*it);}}
void out(){putchar('\n');}
template<class T> void out(T& t){print(t);putchar('\n');}
template <class Head, class... Tail> void out(Head& head, Tail&... tail){print(head);putchar(' ');out(tail...);}
//デバッグ系
template<class T> void dprint(T& a){cerr<<a;}
template<class T> void dprint(vector<T>& vec){if(vec.empty())return;cerr<<vec[0];for(auto it=vec.begin();++it!= vec.end();){cerr<<" "<<*it;}}
void debug(){cerr<<endl;}
template<class T> void debug(T& t){dprint(t);cerr<<endl;}
template <class Head, class... Tail> void debug(Head& head, Tail&... tail){dprint(head);cerr<<" ";debug(tail...);}

int main(){
    int n;
    in(n);
    ll ans=100000;
    rep(i,n){
        ans=ans*1.05;
        if(ans%1000!=0)ans+=1000-ans%1000;
    }
    out(ans);
}