#include <iostream>
#include <cstring>
#include <cstdio>

#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,j) FOR(i,0,j)

const int MAX_D = 130;

struct Integer{
    Integer(int i = 0){
        memset(digits, 0, sizeof(digits));
        n = 0;

        while(i > 0){
            digits[n++] = i % 10;
            i /= 10;
        }
    }
    Integer(const std::string& s){
        memset(digits, 0, sizeof(digits));
        n = 0;

        bool f = false;
        for(int j=(int)s.size()-1;j>=0;j--){
            if(!std::isdigit(s[j])){continue;}

            if(s[j] != '0'){
                digits[n++] = s[j] - '0';
                f = true;
            }else if(f){
                digits[n++] = s[j] - '0';
            }
        }
    }
    int digits[MAX_D], n;
};

Integer operator*(const Integer& lhs, const Integer& rhs){
    Integer res;
    for(int i=0;i<MAX_D;i++){
        for(int j=0;j<MAX_D;j++){
            if(i + j >= MAX_D){continue;}
            int x = lhs.digits[i] * rhs.digits[j] + res.digits[i+j];
            res.digits[i+j] = x % 10;
            if(i + j + 1 < MAX_D){
                res.digits[i+j+1] += x / 10;
            }
        }
    }

    return res;
}

Integer operator+(const Integer& lhs, const Integer& rhs){
    Integer res;
    for(int i=0;i<MAX_D;i++){
        int x = lhs.digits[i] + rhs.digits[i] + res.digits[i];
        res.digits[i] = x % 10;
        if(i+1 < MAX_D){
            res.digits[i+1] = x / 10;
        }
    }

    return res;
}

int main(){
    int N;
    std::cin >> N;

    Integer x(100000), k1(105), k2(1000);
    REP(i, N){
        x = x * k1;
        
        FOR(j, 2, MAX_D){
            x.digits[j-2] = x.digits[j];
        }

        if(x.digits[0] || x.digits[1] || x.digits[2]){
            REP(i, 3){x.digits[i] = 0;}
            x = x + k2;
        }
    }

    bool f = false;
    for(int i=MAX_D-1;i>=0;i--){
        if(x.digits[i] != 0){
            f = true;
        }

        if(f){
            printf("%d", x.digits[i]);
        }
    }
    puts("");
}