式子求和为最低位减最高位,中间位置数字随意
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int P = 1000000007;
long long Pow(long long a,long long b)
{
long long ans=1;
while(b)
{
if(b&1) ans=(ans*a)%P;
a=(a*a)%P;
b>>=1;
}
return ans;
}
int main()
{ long long n, k; cin >> n >> k; int p; if (k>0)p = 9 - k; if (k<0)p = 10 + k; if (k == 0)p = 9; long long sum = Pow(10, n - 2) % P; long long out = 0; for (int i = 0; i < p; i++) out = (out + sum) % P; cout << out << endl; return 0;
}

