#include <bits/stdc++.h>
using namespace std;
long long int modexp(long long int a, long long int ex) {
  long long int res = 1;
  long long int y = a;
  while (ex) {
    if (ex & 1) {
      res = (res * y) % 1000000007;
    }
    ex /= 2;
    if (ex) y = (y * y) % 1000000007;
  }
  return res;
}
long long int inv(long long int a) { return modexp(a, 1000000007 - 2); }
long long int f[100001];
long long int comb(long long int n, long long int k) {
  if (k > n || n < 0) return 0;
  return f[n] * inv(f[k] * f[n - k] % 1000000007) % 1000000007;
}
int main() {
  int n, k;
  cin >> n >> k;
  string s;
  cin >> s;
  vector<int> a(n);
  for (int i = 0; i < (int)n; ++i) a[i] = s[i] - '0';
  for (int i = 0; i < (int)n; ++i)
    if (i) a[i] += a[i - 1];
  f[0] = 1;
  for (int i = 0; i < (int)n + 1; ++i)
    if (i) f[i] = (f[i - 1] * i % 1000000007);
  long long int rval = 0;
  for (int j = 0; j < (int)n; ++j) {
    long long int ten = modexp(10, j);
    long long int delta = 0;
    if (n - 2 - j >= 0) {
      delta = comb(n - 2 - j, k - 1);
      delta = (delta * a[n - 2 - j]) % 1000000007;
    }
    long long int delta2 = 0;
    if (n - 1 - j >= 0) {
      delta2 = comb(n - 1 - j, k) *
               (a[n - 1 - j] - (n - 1 - j ? a[n - 2 - j] : 0)) % 1000000007;
    }
    delta = (delta + delta2) * ten % 1000000007;
    rval = (rval + delta) % 1000000007;
  }
  cout << rval << endl;
}
