#include <bits/stdc++.h>
using namespace std;
const int maxl = 1000 * 100 + 5;
const long long int mod = 1000 * 1000 * 1000 + 7;
int n, k;
long long int fact[maxl], f[maxl], decimal[maxl];
long long int ans;
long long int powe(long long int a, int x) {
  if (!x) return 1;
  long long int res = powe(a, x >> 1);
  res *= res;
  res %= mod;
  if (x & 1) {
    res *= a % mod;
    res %= mod;
  }
  return res;
}
long long int inv(long long int x) { return powe(x, mod - 2); }
long long int comb(int a, int b) {
  if (a > b) return 0;
  long long int res = fact[b];
  res *= inv(fact[a]);
  res %= mod;
  res *= inv(fact[b - a]);
  res %= mod;
  return res;
}
void kzero() {
  for (int i = 0; i < n; i++) {
    char c;
    cin >> c;
    ans *= 10;
    ans += c - '0';
    ans %= mod;
  }
  cout << ans << endl;
}
int main() {
  cin >> n >> k;
  if (k == 0) {
    kzero();
    return 0;
  }
  fact[0] = 1;
  decimal[0] = 1;
  for (long long int i = 1; i < maxl; i++)
    fact[i] = fact[i - 1] * i % mod, decimal[i] = decimal[i - 1] * 10 % mod;
  long long int dec = 1, sum = 0;
  for (int i = 1; i <= n; i++) {
    f[i] = decimal[i - 1] * comb(k - 1, n - 1 - i) % mod;
    sum += f[i];
    sum %= mod;
  }
  for (int i = n; i > 0; i--) {
    char c;
    cin >> c;
    long long int tmp = decimal[i - 1] * comb(k, n - i) % mod;
    sum = (sum - f[i] + tmp + mod) % mod;
    ans = (ans + sum * (c - '0')) % mod;
    sum = (sum - tmp + mod) % mod;
  }
  cout << ans << endl;
}
