#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; long long mod = 1000000007; long long m_pow(long long x, long long y) { long long ans = 1; while (y > 0) { if ((y & 1) == 1) { ans = ans * x % mod; } x = x * x % mod; y >>= 1; } return ans; } int main() { long long a; string b; cin >> a >> b; long long ans = 0, num = 0, a1 = 1, n = b.size(); for (int i = n - 1; i >= 0; i--) { num += a1 * (b[i] - '0'); num %= mod; a1 *= a; a1 %= mod; } for (long long i = 0; i < n - 1; i++) { ans += i * (m_pow(a, i + 1) - m_pow(a, i)); ans %= mod; } ans += (n - 1) * (num - m_pow(a, n - 1) + 1); ans %= mod; cout << (ans + mod) % mod << endl; }