typedef long long ll; typedef long double ld; #include using namespace std; #define int long long const ll MOD = 1e9+7; long long modpow(long long a, long long n) { long long res = 1; while (n > 0) { if (n & 1) res = res * a % MOD; a = a * a % MOD; n >>= 1; } return res; } signed main(){ ll a; std::cin >> a; string b; std::cin >> b; reverse(b.begin(),b.end()); ll n = b.size(); ll ans = 0; ll bv = 0; for (int i = 0; i < n; i++) { if(i!=n-1){ ans += (modpow(a, i+1)-modpow(a,i)+MOD)%MOD*i%MOD; ans %= MOD; bv += modpow(a, i)*(b[i]-'0')%MOD; bv %= MOD; }else{ bv += modpow(a, i)*(b[i]-'1')%MOD; ans += (bv+1)*i; ans %= MOD; } } std::cout << ans << std::endl; }