#include <bits/stdc++.h>
using namespace std;
const long long oo = 1000000007;
long long ans = 0, fact[200000], inv[200000], a[200000];
int n, k;
string s;
long long inver(long long x) {
  long long p = x, ret = 1;
  for (int i = oo - 2; i; i >>= 1) {
    if (i & 1) ret = (ret * p) % oo;
    p = (p * p) % oo;
  }
  return ret;
}
long long calc(int x, int y) {
  return (fact[x] * (inv[y] * inv[x - y] % oo)) % oo;
}
int main() {
  cin >> n >> k >> s;
  fact[0] = 1;
  for (int i = 1; i <= n; i++) fact[i] = (fact[i - 1] * i) % oo;
  for (int i = 0; i <= n; i++) inv[i] = inver(fact[i]);
  for (int i = 0; i < n; i++) a[min(n - k - 1, i)] += s[n - i - 1] - '0';
  long long p = 1;
  for (int i = 0; i < n - k; i++) {
    ans = (ans + a[i] * p * calc(n - i - 1, k)) % oo;
    p = (p * 10) % oo;
  }
  p = 1;
  long long sum = 0;
  for (int i = 1; i < n - k; i++) {
    sum = (sum + p * calc(n - i - 1, k - 1)) % oo;
    ans = (ans + sum * a[i]) % oo;
    p = (p * 10) % oo;
  }
  cout << ans << endl;
  return 0;
}
