#include <iostream>
using namespace std;
int B;
string Y;
int memo[100001];
const int MOD = 1e9+7;
int DP(int index) {
if(index >= Y.size()) return 1;
if(memo[index] != -1) return memo[index];
if(Y[index] == '0') return memo[index] = DP(index+1);
int digit = 0, ans = 0, next = index;
while(next < Y.size() && digit < B) {
digit = 10*digit + (Y[next++]-'0');
if(digit >= B) break;
// cout << index << " " << digit << endl;
ans = (ans+DP(next))%MOD;
}
return memo[index] = ans;
}
int main() {
cin >> B >> Y;
for(int i = 0; i < Y.size(); i++)
memo[i] = -1;
/*
for(int i = 0; i < Y.size(); i++)
cout << DP(i) << " ";
cout << endl;
/**/
cout << DP(0) << endl;
return 0;
}
/*
01234567
71112016
DP(X) = berapa banyak kemungkinan input untuk
string mulai index ke-X
DP(0) = seluruh string
DP(4) = untuk string "2016"
DP(7) = untuk string "6"
DP(8) = 1
71(1)12016
71(11)2016
DP(2) = DP("112016")
= DP(3)
+ DP(4)
*/
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IEI7CnN0cmluZyBZOwppbnQgbWVtb1sxMDAwMDFdOwpjb25zdCBpbnQgTU9EID0gMWU5Kzc7CgppbnQgRFAoaW50IGluZGV4KSB7CglpZihpbmRleCA+PSBZLnNpemUoKSkgcmV0dXJuIDE7CglpZihtZW1vW2luZGV4XSAhPSAtMSkgcmV0dXJuIG1lbW9baW5kZXhdOwoJaWYoWVtpbmRleF0gPT0gJzAnKSByZXR1cm4gbWVtb1tpbmRleF0gPSBEUChpbmRleCsxKTsKCWludCBkaWdpdCA9IDAsIGFucyA9IDAsIG5leHQgPSBpbmRleDsKCXdoaWxlKG5leHQgPCBZLnNpemUoKSAmJiBkaWdpdCA8IEIpIHsKCQlkaWdpdCA9IDEwKmRpZ2l0ICsgKFlbbmV4dCsrXS0nMCcpOwoJCWlmKGRpZ2l0ID49IEIpIGJyZWFrOwoJCS8vIGNvdXQgPDwgaW5kZXggPDwgIiAiIDw8IGRpZ2l0IDw8IGVuZGw7CgkJYW5zID0gKGFucytEUChuZXh0KSklTU9EOwoJfQoJcmV0dXJuIG1lbW9baW5kZXhdID0gYW5zOwp9CgppbnQgbWFpbigpIHsKCWNpbiA+PiBCID4+IFk7Cglmb3IoaW50IGkgPSAwOyBpIDwgWS5zaXplKCk7IGkrKykKCQltZW1vW2ldID0gLTE7CgkvKgoJZm9yKGludCBpID0gMDsgaSA8IFkuc2l6ZSgpOyBpKyspCgkJY291dCA8PCBEUChpKSA8PCAiICI7Cgljb3V0IDw8IGVuZGw7CgkvKiovCgljb3V0IDw8IERQKDApIDw8IGVuZGw7CglyZXR1cm4gMDsKfQovKgowMTIzNDU2Nwo3MTExMjAxNgoKRFAoWCkgPSBiZXJhcGEgYmFueWFrIGtlbXVuZ2tpbmFuIGlucHV0IHVudHVrCiAgICAgICAgc3RyaW5nIG11bGFpIGluZGV4IGtlLVgKICAgICAgICAKRFAoMCkgPSBzZWx1cnVoIHN0cmluZwpEUCg0KSA9IHVudHVrIHN0cmluZyAiMjAxNiIKRFAoNykgPSB1bnR1ayBzdHJpbmcgIjYiCkRQKDgpID0gMQoKNzEoMSkxMjAxNgo3MSgxMSkyMDE2CgpEUCgyKSA9IERQKCIxMTIwMTYiKQo9IERQKDMpCisgRFAoNCkKCiov