#include <bits/stdc++.h>
using namespace std;
const int mod = (int)1e9 + 7;
long long fact[200005], inv[200005];
int bigmod(long long a, long long p) {
  long long ret = 1;
  while (p) {
    if (p & 1) ret = ret * a % mod;
    a = a * a % mod;
    p >>= 1;
  }
  return ret;
}
int mod_add(long long a, long long b) {
  a += b;
  if (a >= mod) a -= mod;
  return a;
}
int mod_sub(long long a, long long b) {
  a -= b;
  if (a < 0) a += mod;
  return a;
}
int mod_mul(long long a, long long b) { return (a * b) % mod; }
int mod_div(long long a, long long b) { return mod_mul(a, bigmod(b, mod - 2)); }
int mod_power(int a, int b) {
  int res = 1;
  while (b > 0) {
    if (b & 1) {
      res = mod_mul(res, a);
    }
    a = mod_mul(a, a);
    b >>= 1;
  }
  return res;
}
void factorial() {
  fact[0] = 1;
  inv[0] = 1;
  for (int i = 1; i < 200005; i++) {
    fact[i] = mod_mul(fact[i - 1], i);
    inv[i] = mod_power(fact[i], mod - 2);
  }
}
long long nCr(long long n, long long r) {
  if (r > n) return 0;
  long long ret = fact[n];
  ret = (ret * inv[r]) % mod;
  ret = (ret * inv[n - r]) % mod;
  return ret;
}
int tanpw[200005];
int sum[200005];
int main() {
  factorial();
  int n, k, i, j;
  string str;
  cin >> n >> k;
  cin >> str;
  tanpw[0] = 1;
  for (i = 1; i <= n; i++) tanpw[i] = mod_mul(tanpw[i - 1], 10);
  sum[0] = str[0] - '0';
  for (i = 1; i < n; i++) sum[i] = sum[i - 1] + (str[i] - '0');
  long long ans = 0;
  for (int l = 0; l <= n - 2; l++) {
    long long tx = mod_mul(nCr(n - l - 2, k - 1), tanpw[l]);
    tx = mod_mul(tx, sum[n - l - 2]);
    ans = mod_add(ans, tx);
  }
  for (i = 0; i <= n - 1; i++) {
    long long tx = mod_mul(nCr(i, k), tanpw[n - i - 1]);
    tx = mod_mul(tx, str[i] - '0');
    ans = mod_add(ans, tx);
  }
  cout << ans << endl;
  return 0;
}
