/*
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*
#include <stdio.h>
int n;
int f()
{
int s=0;
for(int i=1; i<=n; i++)
{
if(n%i==0)
{
s=s+1;
}
}
return s;
}
int main()
{
scanf("%d", &n);
printf("%d\n", f(n));
}
*/
/*0
#include <stdio.h>
long long int n;
long long int f()
{
long long int s=0;
while(n>0)
{
s=s*10+n%10;
n=n/10;
}
return s;
}
int main()
{
scanf("%lld", &n);
printf("%lld\n", f(n));
}
*/
/*
#include <stdio.h>
int n, k, d[1010];
int lower_bound()
{
long long int s=0;
for(int i=1; i<=n; i++)
{
if(d[i]>=k)
{
s=i;
break;
}
else if(d[i]<k)
{
s=i+1;
}
}
return s;
}
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;
int f()
{
int s=0;
for(int i=2; i<=n; i++)
{
if(n%i==0)
{
s=s+1;
}
}
if(s==1)
{
printf("prime");
}
else
{
printf("composite");
}
}
int main()
{
scanf("%d", &n);
f(n);
return 0;
}
*/
/*
#include <stdio.h>
int n, d[100010], k;
int f()
{
long long int s=0;
for(int i=1; i<=n; i++)
{
if(d[i]==k)
{
s=i;
break;
}
else
{
s=-1;
}
}
return s;
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d", &k);
printf("%d\n", f(k));
}
*/
#include <stdio.h>
int a, n;
long long int pow(int a, int n)
{
long long int i, s=a;
for(i=1; i<=n; i++)
{
a=a*s;
}
return a;
}
int main()
{
scanf("%d%d", &a, &n);
printf("%lld\n", pow(a, n));
}