#include <bits/stdc++.h>
using namespace std;
const int mx = 1e5 + 10, mod = 1e9 + 7;
int f[mx], cd[mx], d[mx];
string in;
int n, k, m, a1, a2;
int me(int b, int e) {
  int ret = 1;
  while (e) {
    if (e & 1) ret = (1ll * ret * b) % mod;
    b = (1ll * b * b) % mod;
    e /= 2;
  }
  return ret;
}
int c(int n, int r) {
  if (n < r) return 0;
  int num = f[n];
  int dem = (1ll * f[r] * f[n - r]) % mod;
  dem = me(dem, mod - 2);
  num = (1ll * num * dem) % mod;
  return num;
}
int main() {
  f[0] = f[1] = 1;
  for (int i = int(2); i <= int(mx - 1); ++i) f[i] = (1ll * f[i - 1] * i) % mod;
  cin >> n >> k >> in;
  m = n - 1;
  for (int i = int(0); i <= int(in.size() - 1); ++i) {
    d[i] = in[i] - '0';
    if (!i)
      cd[i] = d[i];
    else
      cd[i] = cd[i - 1] + d[i];
  }
  for (int i = int(0); i <= int(m - 1); ++i) {
    int p1 = me(10, i);
    int p2 = c(m - i - 1, k - 1);
    int p3 = cd[m - i - 1];
    int ta1 = (1ll * p1 * p2) % mod;
    ta1 = (1ll * ta1 * p3) % mod;
    a1 = (ta1 + a1) % mod;
  }
  for (int i = int(0); i <= int(m); ++i) {
    int p1 = me(10, m - i);
    int p2 = c(i, k);
    int p3 = d[i];
    int ta2 = (1ll * p1 * p2) % mod;
    ta2 = (1ll * ta2 * p3) % mod;
    a2 = (ta2 + a2) % mod;
  }
  cout << (a1 + a2) % mod << endl;
  return 0;
}
