#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 100 * 1000 + 5, MOD = 1e9 + 7;
int n, k, a[MAX_N], fac[MAX_N], inv[MAX_N];
void read_input() {
  string s;
  cin >> n >> k >> s;
  for (int i = 0; i < n; i++, s.pop_back()) a[i] = s.back() - '0';
}
int pw(int b, int p) {
  int res = 1;
  for (; p; p >>= 1, b = 1LL * b * b % MOD)
    if (p & 1) res = 1LL * res * b % MOD;
  return res;
}
void prep() {
  fac[0] = inv[0] = 1;
  for (int i = 1; i <= n; i++) {
    fac[i] = 1LL * fac[i - 1] * i % MOD;
    inv[i] = pw(fac[i], MOD - 2);
  }
}
int nCr(int n, int r) {
  if (r > n) return 0;
  return 1LL * fac[n] * inv[r] % MOD * inv[n - r] % MOD;
}
void solve() {
  prep();
  int ans = 0, t = 0;
  for (int i = 0, pw10 = 1; i < n; i++, pw10 = 10LL * pw10 % MOD) {
    ans = (ans + a[i] * (t + 1LL * pw10 * nCr(n - 1 - i, k) % MOD)) % MOD;
    t = (t + 1LL * pw10 * nCr(n - 2 - i, k - 1)) % MOD;
  }
  cout << ans;
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  read_input();
  solve();
}
