//快速幂
//AC代码
#include<stdio.h>
#include<string.h>
int main()
{
int a,b;
long long s;//__int64不能参与循环???
while(~scanf("%d%d",&a,&b))
{
long long cmp(long long a,long long b);
s=cmp(a,b);
printf("%lld\n",s);
}
return 0;
}
long long cmp(long long a,long long b)//要想结果是long long,函数也要定义为long long
{
long long s=1;
while(b)
{
if(b&1)
s*=a;
b>>=1;
a*=a;
}
return s;
}
//不能AC
/*
#include<stdio.h>
#include<string.h>
int main()
{
int a,b;
__int64 s;
while(~scanf("%d%d",&a,&b))
{
int cmp(int a,int b);
s=cmp(a,b);
printf("%I64d\n",s);
}
return 0;
}
int cmp(int a,int b)
{
__int64 s=1;
while(b)
{
if(b&1)
s*=a;
b>>=1;
a*=a;
}
return s;
}
*/
//能计算__int64表示的范围
/*
#include<stdio.h>
int main()
{
__int64 a;
while(scanf("%I64d",&a))
{
printf("%I64d\n",a);
}
return 0;
}
*/