/*
#include <stdio.h>
int n, k, d[1010];
int findi(int k)
{
for (int i=1; i<=n; i++)
{
if (d[i] == k)
{
return i;
break;
}
}
return -1;
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d", &k);
printf("%d\n", findi(k));
}
*/
/*
#include <stdio.h>
int n, k, d[1010];
int lower_bound(int k)
{
for(int i=1; i<=n; i++)
{
if(d[i]>=k)
{
return i;
}
}
return n+1;
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d", &k);
printf("%d\n", lower_bound(k));
}
#include <stdio.h>
int n, k, d[1010];
int upper_bound(int k)
{
for(int i=1; i<=n; i++)
{
if(d[i]>k)
{
return i;
}
}
return n+1;
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d", &k);
printf("%d\n", upper_bound(k));
}
두 수의 곱 = 두 수의 최대공약수 * 두수의 최소공배수
최소공배수 = 두수의곱 / 최대공약수
*/
/*
#include <stdio.h>
int gcd(int p, int q){ if(p==0) return q; return gcd(q%p, p);}
long long int lcm(int a, int b)
{
int g=gcd(a,b);
return (long long int)a*b/g;
}
int main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%lld\n", lcm(a, b));
}
*/
#include <stdio.h>
int a, n;
long long int pow(int a, int n)
{
long long int s=1;
if (a!=1)
{
for (int i=1; i<=n; i++)
{
s*=a;
}
}
return s;
}
int main()
{
scanf("%d%d", &a, &n);
printf("%lld\n", pow(a, n));
}