#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
long long fct[100007];
long long inf[100007];
long long p10[100007];
long long nCr(long long n, long long r) {
  if (n < r) return 0;
  return (((fct[n] * inf[r]) % MOD) % MOD * inf[n - r]) % MOD;
}
long long powMod(long long a, long long b) {
  if (!b) return 1;
  long long r = powMod(a, b / 2);
  r = (r * r) % MOD;
  if (b % 2) r = (r * a) % MOD;
  return r;
}
long long inverse(long long a) { return powMod(a, MOD - 2); }
int main() {
  std::ios_base::sync_with_stdio(false);
  long long n, k;
  cin >> n >> k;
  string s;
  cin >> s;
  fct[0] = inf[0] = p10[0] = 1;
  for (long long i = 1; i <= n; i++) {
    fct[i] = (i * fct[i - 1]) % MOD;
    inf[i] = inverse(fct[i]);
    p10[i] = (10 * p10[i - 1]) % MOD;
  }
  long long ans = 0;
  long long sm = 0;
  for (long long i = n - 2; i >= 0; i--) {
    sm += (p10[n - 2 - i] * nCr(i, k - 1)) % MOD;
    if (sm >= MOD) sm -= MOD;
    ans += ((s[i] - '0') * sm) % MOD;
  }
  ans %= MOD;
  for (long long i = n - 1; i >= 0; i--) {
    ans += ((s[i] - '0') * (p10[n - 1 - i] * nCr(i, k)) % MOD) % MOD;
  }
  ans %= MOD;
  cout << ans << endl;
  return 0;
}
