class Solution {
long long int Pow(long long int x,int n){
if(n == 0) return 1;
long long int v = Pow(x,n/2);
v %= 1337;
return (n%2 == 0 ? 1 : (x%1337) ) * (v*v)%1337;
}
long long int fastpower(long long int x,int n){
long long int ans = 1;
while(n > 0){
if(n & 1){
ans *= x;
ans %= 1337;
}
x *=x%1337;
n >>= 1;
}
return ans;
}
public:
int superPow(int a, vector<int>& b) {
long long int ans = 1,tmp = a % 1337;
int i = b.size()-1;
while(i>=0){
ans *= fastpower(tmp,b[i]);
tmp = fastpower(tmp,10) % 1337;
ans %= 1337;
i--;
}
return ans;
}
};