//#include <ext/pb_ds/assoc_container.hpp> // Common file
//#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
//#include <ext/pb_ds/detail/standard_policies.hpp>
#include<set>
#include<map>
#include <unordered_map>
#include <unordered_set>
#include<list>
#include<iomanip>
#include<cmath>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<complex>
#include<sstream>
#include<iostream>
#include<fstream>
#include<algorithm>
#include<numeric>
#include<utility>
#include<functional>
#include<stdio.h>
#include<assert.h>
#include<memory.h>
#include<bitset>
#include<math.h>
#include <strings.h>
#include <fstream>


#define f first
#define s second
#define pb push_back
#define lp(i,a,n) for(int (i)=(a);(i)<=(int)(n);(i)++)
#define lpd(i,n,a) for(int (i)=(n);(i)>=(a);--(i))
#define mp make_pair
#define clr(a, b) memset(a,b,sizeof a)
#define all(v) v.begin(),v.end()
#define mod 1000000007
#define eps 1e-8
#define infi 2000000007
#define infll 1e18
#define MX 1000000
#define X real()
#define Y imag()
#define polar(r,t) ((r)* exp(point(0,(t))))
#define length(a) hypot( (a).X , (a).Y )
#define angle(a) atan2( (a).Y , (a).X )
#define vec(a,b) ( (b) - (a) )
#define dot(a,b) (conj(a)*(b)).X
#define cross(a,b) (conj(a)*(b)).Y
#define lengthsqr(a) dot(a,a)
#define reflect(V,M) (conj((V)/(M)) * (M))
//#define rotate(a, theta) (a) * (polar(1.0, (theta) ))
#define normalize(a)   ((a)/length(a))
#define ccw(a,b,c) cross(vec(a,b) , vec(a,c)) > eps
#define cosRule(a,b,c) (acos(((a)*(a)+(b)*(b)-(c)*(c))/(2*(a)*(b))))
#define cosDot(a,b) (acos(dot(a,b)/length(a)/length(b)))
#define EQ(a,b) (fabs((a) - (b)) <= eps) /* equal to */
#define NE(a,b) (fabs((a) - (b)) > eps)  /* not equal to */
#define LT(a,b) ((a) < (b) - eps)        /* less than */
#define GT(a,b) ((a) > (b) + eps)        /* greater than */
#define LE(a,b) ((a) <= (b) + eps)       /* less than or equal to */
#define GE(a,b) ((a) >= (b) - eps)       /* greater than or equal to */
#define mod1 100050001
#define mod2 100030001
#define base1 37
#define base2 31
#define PI acos(-1)
#define sz(a) (int) (a).size()

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<double,double> pdd;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<vi> vvi;
typedef set<int> si;
typedef map<int, int> mii;
typedef map<ll, ll> mll;
typedef complex<long double> point;
typedef pair<point, point> line;
typedef pair<double , point> Circle;
typedef long double ld;

const int N = 1002;

int n, m;
ll a[N][3]; // dp[N][N][3];

bool vis[N][N];
struct node {
    ll x,y,z;
    bool inv;
} dp[N][N];

ll getVal(node &r) {
    return abs(r.x) + abs(r.y) + abs(r.z);
}

node solve(int i, int j) {
    
    if(j == m+1) return {0,0,0,0};
    
    if(i == n+1) return {0,0,0,1};
    
    if(vis[i][j]) return dp[i][j];
    vis[i][j] = true;
    node &ret = dp[i][j];
    
    ret = solve(i+1, j);
    
    node ret1 = solve(i+1, j+1);
    
    if(ret1.inv) return ret;
    
    ret1.x += a[i][0], ret1.y += a[i][1], ret1.z += a[i][2];
    
    if(getVal(ret1) > getVal(ret))
        ret = ret1;
    
    return ret;
}

int main(int argc, const char * argv[]) {
    
    
//    scanf("%d%d",&n,&m);
//    lp(i, 1, n) lp(j,0,2) scanf("%lld",&a[i][j]);
//    
//    
//    
////    lp(i, 1, n) {
////        lp(j, 1, m) {
////            
////        }
////    }
//    node ans = solve(1, 1);
//    printf("%lld\n", getVal(ans));
    
    ll d,n;
    scanf("%lld%lld",&d,&n);
    if(n == 100) ++n;
    lp(i, 1, d) n*=100;
    printf("%lld\n",n);
    
    return 0;
}

/*
 
 3 3
 2 1 1 1 3 1
 2 2 1 2 3 2
 2 3 1 3 3 4
 
 
 5 1
 2 1 1 3 3 1
 

 */





Measured memory_bytes: 256