#include <bits/stdc++.h>
using namespace std;
const int maxn = 100000 + 5;
const int mod = 1e9 + 7;
long long A[maxn], rev[maxn];
char digit[maxn];
int sum[maxn];
inline long long add(long long a, long long b) { return (a + b) % mod; }
inline long long mul(long long a, long long b) { return a * b % mod; }
long long qpow(long long base, long long p) {
  long long ret = 1;
  while (p) {
    if (p & 1) ret = mul(ret, base);
    base = mul(base, base);
    p >>= 1;
  }
  return ret;
}
void pre_init() {
  A[0] = rev[0] = 1;
  for (int i = (1); i < (maxn); ++i) {
    A[i] = mul(A[i - 1], i);
    rev[i] = qpow(A[i], mod - 2);
  }
}
inline long long C(int n, int m) {
  if (n < m) return 0;
  return mul(A[n], mul(rev[m], rev[n - m]));
}
int main() {
  pre_init();
  int N, K;
  cin >> N >> K;
  scanf("%s", digit + 1);
  for (int i = (1); i < (N + 1); ++i) sum[i] = sum[i - 1] + digit[i] - '0';
  long long pw = 1;
  long long ans = 0;
  for (int i = (1); i < (N + 1); ++i) {
    long long s = sum[N - i];
    ans = add(ans, mul(s, mul(pw, C(N - 1 - i, K - 1))));
    ans = add(ans, mul(digit[N - i + 1] - '0', mul(pw, C(N - 1 - i + 1, K))));
    pw = mul(pw, 10);
  }
  cout << ans << endl;
}
