#include <bits/stdc++.h>
using namespace std;
const int oo = 0x3f3f3f3f;
const double EPS = 1e-9;
const int MAXN = (int)1e5 + 10;
const long long MOD = (long long)1e9 + 7;
long long TEN_POW[MAXN];
long long MOD_INV[MAXN];
long long FACT[MAXN];
long long INV_FACT[MAXN];
long long ACC[MAXN];
long long comb(int n, int p) {
  if (p > n) return 0;
  return (((FACT[n] * INV_FACT[p]) % MOD) * INV_FACT[n - p]) % MOD;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  MOD_INV[1] = 1;
  for (int i = 2; i < MAXN; i++)
    MOD_INV[i] = (MOD - (MOD / i) * MOD_INV[MOD % i] % MOD) % MOD;
  TEN_POW[0] = FACT[0] = INV_FACT[0] = 1;
  for (int i = 1; i < MAXN; ++i) {
    FACT[i] = (FACT[i - 1] * i) % MOD;
    INV_FACT[i] = (INV_FACT[i - 1] * MOD_INV[i]) % MOD;
    TEN_POW[i] = (TEN_POW[i - 1] * 10) % MOD;
  }
  int n, t;
  string s;
  cin >> n >> t;
  cin >> s;
  ACC[0] = comb(n - 2, t - 1);
  for (int i = 1; t - 1 <= n - i - 2; ++i) {
    ACC[i] = (ACC[i - 1] + (TEN_POW[i] * comb(n - i - 2, t - 1)) % MOD) % MOD;
  }
  long long ans = 0;
  for (int k = 0; k < n; ++k) {
    long long cur = 0;
    cur = ((s[k] - '0') *
           ((ACC[min(n - k - 2, n - t - 1)] +
             (comb(k, t) * TEN_POW[n - k - 1]) % MOD)) %
           MOD) %
          MOD;
    ans = (ans + cur) % MOD;
  }
  cout << ans << '\n';
  return 0;
}
