#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
const int P = 1e9 + 7;
void read(int &x) { scanf("%d", &x); }
int n, k;
long long fact[maxn], Pow[maxn], inv[maxn], fact_inv[maxn], res[maxn];
char str[maxn];
long long Com(int x, int y) {
  if (x < y) return 0;
  return fact[x] * fact_inv[x - y] % P * fact_inv[y] % P;
}
int main() {
  read(n), read(k);
  getchar();
  inv[1] = Pow[0] = fact[0] = fact_inv[0] = 1;
  for (int i = 1; i <= n; i++) Pow[i] = Pow[i - 1] * 10 % P;
  for (int i = 1; i <= n; i++) fact[i] = fact[i - 1] * i % P;
  for (int i = 2; i <= n; i++) inv[i] = (P - P / i % P * inv[P % i] % P) % P;
  for (int i = 1; i <= n; i++) fact_inv[i] = fact_inv[i - 1] * inv[i] % P;
  res[0] = Com(n - 2, k - 1);
  for (int i = 1; i <= n; i++)
    res[i] = (res[i - 1] + Pow[i] * Com(n - i - 2, k - 1) % P) % P;
  long long ans = 0, tmp;
  for (int i = 1; i <= n; i++) {
    int x = getchar() ^ 48;
    if (!x) continue;
    tmp = (res[n - i - 1] + Pow[n - i] * Com(i - 1, k) % P) % P;
    ans = (ans + tmp * x % P) % P;
  }
  printf("%lld", ans);
}
