//因為只要找最後一位數
所以只要不斷重複乘以最後一位數就好
#include<cstdio>
#include<string.h>
#include<cmath>
int pd(char x[]){
int m=0,s=strlen(x);
for(int i=0;i<s;i++)
m+=x[i]-'0';
return m;
}
int max(int x){
if(x==0||x==1||x==5||x==6) return 1;
else if(x==2||x==3||x==7||x==8) return 2;
else return 3;
}
int main(){
char x[120],y[120];
while(~scanf("%s%s",&x,&y)){
int s1=pd(x),s2=pd(y);
if(s1==0&&s2==0) break;
if(s2==0) printf("1\n");
else if(s1==0) printf("0\n");
else{
int s3=y[strlen(y)-1]-'0';
if(strlen(y)>1) s3+=10*(y[strlen(y)-2]-'0');
int fact=x[strlen(x)-1]-'0';
if(max(fact)==1) printf("%d\n",fact);
else if(max(fact)==2) printf("%d\n",((int)pow(fact,s3%4+4))%10);
else printf("%d\n",((int)pow(fact,s3%2+2))%10);
}
}}紅色字很重要否則會出錯