#include <bits/stdc++.h>
using namespace std;
const int maxn = 100000 + 10;
const int MOD = 1000000007;
inline long long mul_mod(long long a, long long b, long long n = MOD) {
  return a * b % n;
}
long long pow_mod(long long a, long long p, long long n = MOD) {
  if (p == 0) return 1LL;
  long long ans = pow_mod(a, p >> 1, n);
  ans = ans * ans % n;
  if (p & 1) ans = ans * a % n;
  return ans;
}
int n, k;
int a[maxn], sum[maxn];
int ten_pow[maxn], fac[maxn], ifac[maxn];
void Init() {
  sum[0] = a[0];
  for (int i = 1; i < n; i++) sum[i] = sum[i - 1] + a[i];
  fac[0] = 1;
  for (int i = 1; i <= n; i++) fac[i] = mul_mod(fac[i - 1], i);
  ifac[n] = pow_mod(fac[n], MOD - 2);
  for (int i = n - 1; i >= 0; i--) ifac[i] = mul_mod(ifac[i + 1], i + 1);
  ten_pow[0] = 1;
  for (int i = 1; i < n; i++) ten_pow[i] = mul_mod(ten_pow[i - 1], 10);
}
inline long long C(int n, int k) {
  if (k > n || k < 0) return 0;
  return mul_mod(mul_mod(fac[n], ifac[k]), ifac[n - k]);
}
int main() {
  scanf("%d%d", &n, &k);
  getchar();
  for (int i = 0; i < n; i++) a[i] = getchar() - '0';
  Init();
  long long ans = 0;
  for (int l = 0; l <= n - 2; l++) {
    ans = (ans +
           mul_mod(mul_mod(ten_pow[l], C(n - l - 2, k - 1)), sum[n - l - 2])) %
          MOD;
    ans = (ans + mul_mod(mul_mod(a[l], ten_pow[n - l - 1]), C(l, k))) % MOD;
  }
  ans = (ans + mul_mod(a[n - 1], C(n - 1, k))) % MOD;
  printf("%I64d\n", ans);
  return 0;
}
