#include <bits/stdc++.h>
using namespace std;
long long int fact[200000];
long long int modexp(long long int a, long long int b) {
  long long int ret = 1;
  while (b) {
    if ((b & 1)) {
      ret *= a;
      ret %= 1000000007;
    }
    a *= a;
    a %= 1000000007;
    b >>= 1;
  }
  return ret;
}
long long int nCr(int n, int r) {
  if (n < r) return 0;
  long long int num = fact[n];
  long long int den = (fact[r] * fact[n - r]) % 1000000007;
  return (num * modexp(den, 1000000007 - 2)) % 1000000007;
}
long long int ways(int i, int j) { return nCr(i - 1, j); }
int n, k;
string s;
int main() {
  int i, j;
  fact[0] = 1;
  for (i = 1; i < 200000; i++) {
    fact[i] = (fact[i - 1] * i) % 1000000007;
  }
  cin >> n >> k;
  cin >> s;
  long long int ans = 0;
  long long int pans = 0;
  for (i = n - 1; i >= 0; i--) {
    long long int cpow = 1;
    long long int cans = 0;
    if (n - i - 2 >= 0)
      cans = pans + modexp(10, n - i - 2) * ways(i + 1, k - 1);
    cans %= 1000000007;
    pans = cans;
    cans += modexp(10, n - i - 1) * ways(i + 1, k);
    cans %= 1000000007;
    cans *= (int)(s[i] - '0');
    cans %= 1000000007;
    ans += cans;
  }
  cout << ans % 1000000007 << endl;
  return 0;
}
