#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define N 100005
#define mds ll(1e9+7)
typedef long long ll;
ll fastpow(ll a,ll n,ll md)
{
ll res=1;
while (n>0)
{
if (n&1) res=(res*a)%md;
n/=2;
a=a*a%md;
}
return res;
}
int main()
{
ios_base::sync_with_stdio(NULL);
cin.tie(NULL);
#ifndef ONLINE_JUDGE
freopen("input.inp","r",stdin);
freopen("output.out","w",stdout);
#endif
ll x;string s;cin>>x>>s;
ll res=1;
for (int i=0;i<s.size();i++)
res=res*fastpow(fastpow(x,s[i]-'0',mds),fastpow(10,s.size()-i-1,mds-1),mds)%mds;
cout<<res;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgTiAxMDAwMDUKI2RlZmluZSBtZHMgbGwoMWU5KzcpCnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKbGwgZmFzdHBvdyhsbCBhLGxsIG4sbGwgbWQpCnsKICAgIGxsIHJlcz0xOwogICAgd2hpbGUgKG4+MCkKICAgIHsKICAgICAgICBpZiAobiYxKSByZXM9KHJlcyphKSVtZDsKICAgICAgICBuLz0yOwogICAgICAgIGE9YSphJW1kOwogICAgfQogICAgcmV0dXJuIHJlczsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKE5VTEwpOwogICAgY2luLnRpZShOVUxMKTsKCiAgICAjaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQuaW5wIiwiciIsc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0Lm91dCIsInciLHN0ZG91dCk7CiAgICAjZW5kaWYKCiAgICBsbCB4O3N0cmluZyBzO2Npbj4+eD4+czsKICAgIGxsIHJlcz0xOwogICAgZm9yIChpbnQgaT0wO2k8cy5zaXplKCk7aSsrKQogICAgICAgcmVzPXJlcypmYXN0cG93KGZhc3Rwb3coeCxzW2ldLScwJyxtZHMpLGZhc3Rwb3coMTAscy5zaXplKCktaS0xLG1kcy0xKSxtZHMpJW1kczsKCiAgICBjb3V0PDxyZXM7CgoKfQo=