// HDOJ 1097 A hard puzzle
// @author: bos
// @date: 2012.2.17
//类似1061的题目
//好像用到了拉格朗日的不知道什么定理
//在《算法导论》里有,有机会借一本来看
#include <stdio.h>
#include <math.h>
int main()
{
_int64 a, b;
while (scanf("%I64d%I64d", &a, &b)!= EOF)
{
int use[10]= {0};
int result[10]= {0}; //存储循环数
int dig= 1; //存储末尾数
long i, j= 0;
dig= a% 10;
for (i= 0; i< b; i++)
{
if(use[dig]== 1) break;
else
{
result[j]= dig;
j++;
use[dig]= 1;
dig*= (a% 10);
dig%= 10;
}
}
if((a== 1)||(b== 1)||(a== 0)) printf("%d\n", a% 10);//貌似必须有a、b为0的情况
else if(b== 0) printf("1\n");
else printf("%ld\n",result[(b- 1)% j]);
}
return 0;
}