#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
const int SIZE = 1e6 + 5;
const long long INF = 1LL << 55;
const double eps = 1e-10;
long long expo(long long a, long long b) {
  if (b == 0) return 1;
  long long h = expo(a, b / 2);
  h = (h * h) % MOD;
  if (b % 2) h = (h * a) % MOD;
  return h;
}
long long f[100009];
long long ivf[100009];
long long C(long long a, long long b) {
  return (((f[a] * ivf[b]) % MOD) * ivf[a - b]) % MOD;
}
char s[100009];
long long dp[100009];
int main() {
  f[0] = ivf[0] = 1;
  for (int i = (1); i < (100009); ++i) {
    f[i] = (f[i - 1] * i) % MOD;
    ivf[i] = expo(f[i], MOD - 2);
  }
  int n, k;
  scanf("%d%d", &n, &k);
  scanf("%s", (s));
  for (int j = (1); j < (n + 1); ++j) {
    if (n - j - 1 < k - 1)
      dp[j] = dp[j - 1];
    else
      dp[j] = (dp[j - 1] + expo(10, j - 1) * C(n - j - 1, k - 1)) % MOD;
  }
  long long ans = 0;
  for (int i = 0; i < (n); ++i) {
    ans = (ans + (long long)(s[i] - '0') * dp[n - i - 1]) % MOD;
    if (i >= k && n - i - 1 >= 0)
      ans = (ans +
             (long long)(s[i] - '0') * (expo(10, n - i - 1) * C(i, k)) % MOD) %
            MOD;
  }
  printf("%I64d", ans);
}
