#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
long long c[100001][2];
long long binpow(long long x, long long p) {
  if (p == 0) return 1;
  if (p == 1) return x;
  long long ans = binpow(x, p / 2);
  ans = (ans * ans) % mod;
  if (p & 1) ans = (ans * x) % mod;
  return ans;
}
long long rev(long long x) { return binpow(x, mod - 2); }
int main() {
  ios_base::sync_with_stdio(false);
  long long a[100000], n, k;
  char ch;
  long long ans = 0;
  cin >> n >> k;
  for (int i = 0; i < n; i++) cin >> ch, a[i] = ch - '0';
  if (k == 0) {
    long long num = 0;
    for (int i = 0; i < n; i++) {
      num = (num * 10 + a[i]) % mod;
      ans += num;
      ans %= mod;
    }
    cout << num;
    return 0;
  }
  for (int j = 0; j < 2; j++) {
    if (k - j == 0)
      c[0][j] = 1;
    else
      c[0][j] = 0;
  }
  c[k][0] = 1;
  c[k - 1][1] = 1;
  for (int i = k + 1; i <= n; i++) {
    int j = 0;
    c[i][j] = (c[i - 1][j] * i) % mod;
    c[i][j] = (c[i][j] * rev(i - (k - j))) % mod;
  }
  for (int i = k; i <= n; i++) {
    int j = 1;
    c[i][j] = (c[i - 1][j] * i) % mod;
    c[i][j] = (c[i][j] * rev(i - (k - j))) % mod;
  }
  long long pow10[100001];
  pow10[0] = 1;
  for (int i = 1; i <= n; i++) pow10[i] = (pow10[i - 1] * 10) % mod;
  long long pref_sum[100000] = {0};
  pref_sum[0] = a[0];
  for (int i = 1; i < n; i++) pref_sum[i] = pref_sum[i - 1] + a[i];
  for (int t = 0; t <= n - 2; t++) {
    ans += (((c[n - t - 2][1] * pow10[t]) % mod) * pref_sum[n - t - 2]) % mod;
    ans %= mod;
  }
  for (int t = 0; t <= n - 1; t++) {
    ans += (((c[n - t - 1][0] * pow10[t]) % mod) * a[n - t - 1]) % mod;
    ans %= mod;
  }
  cout << ans;
  return 0;
}
