#include <bits/stdc++.h>
using namespace std;
int n, k;
char op[100005];
long long F[100005], Fi[100005], dp[100005], S[100005];
long long fastpow(long long a, long long b) {
  long long ans = 1;
  while (b) {
    if (b & 1) ans = ans * a % 1000000007;
    b >>= 1;
    a = a * a % 1000000007;
  }
  return ans;
}
void init() {
  F[0] = 1;
  for (int i = 1; i <= 100005 - 5; i++) {
    F[i] = F[i - 1] * i % 1000000007;
  }
  Fi[100005 - 5] = fastpow(F[100005 - 5], 1000000007 - 2);
  for (int i = 100005 - 6; i >= 0; i--) {
    Fi[i] = Fi[i + 1] * (i + 1) % 1000000007;
  }
}
long long C(int n, int m) {
  return F[n] * Fi[n - m] % 1000000007 * Fi[m] % 1000000007;
}
int main() {
  init();
  scanf("%d%d%s", &n, &k, op + 1);
  for (int i = 1; i <= n; i++) {
    S[i] = (S[i - 1] + op[i] - 48) % 1000000007;
  }
  long long ans = 0, base = 1;
  for (int i = 1; i <= n - k; i++) {
    ans += S[n - i] * C(n - i - 1, k - 1) % 1000000007 * base % 1000000007 +
           (op[n - i + 1] - 48) * C(n - i, k) % 1000000007 * base % 1000000007;
    base *= 10;
    ans %= 1000000007;
    base %= 1000000007;
  }
  printf("%lld\n", ans);
  return 0;
}
