why am i getting tle?
#include <iostream>
#include<string.h>
using namespace std;
int main(void) {
int t,i,j,a,m,ans,e,len;
char b[251];
scanf("%d",&t);
for(j=0;j<t;j++)
{
cin>>a>>b>>m;
len=strlen(b);
e=1;
ans=1;
for(i=len-1;i>=0;i--)
{
if(b[i]=='1')
ans=(ans*a)%m;
if(b[i]=='2')
ans=(((ans*a)%m)*a)%m;
a=(((a*a)%m)*a)%m;
}
cout<<ans<<"\n";
}
return 0;
}