#include <bits/stdc++.h>
using namespace std;
const long double eps = 1e-7;
const long long inf = 1e18 + 100;
const int mod = 1000000007;
const int MAXN = 1000010;
long long n, q, x, k, y, ans, s;
long long tav[MAXN];
long long F[MAXN];
long long I[MAXN];
long long dp[MAXN];
long long B[MAXN];
int A[MAXN];
int ps[MAXN];
string str;
long long powmod(long long a, long long b) {
  if (!b) return 1;
  if (b & 1) return (a * powmod(a, b - 1)) % mod;
  return powmod(a * a % mod, b >> 1);
}
long long C(long long n, long long r) {
  return (F[n] * I[r] % mod) * I[n - r] % mod;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  tav[0] = F[0] = I[0] = 1;
  for (int i = 1; i < MAXN; i++) tav[i] = (10 * tav[i - 1]) % mod;
  for (int i = 1; i < MAXN; i++) F[i] = (i * F[i - 1]) % mod;
  for (int i = 1; i < MAXN; i++) I[i] = (I[i - 1] * powmod(i, mod - 2)) % mod;
  cin >> n >> k;
  cin >> str;
  for (int i = 1; i <= n; i++) A[i] = str[i - 1] - '0';
  for (int i = 1; i <= n; i++) ps[i] = ps[i - 1] + A[i];
  for (int i = 1; i <= n; i++) {
    B[i] = (C(n - i - 1, k - 1) * tav[i - 1]) % mod;
  }
  for (int i = 1; i < n; i++) {
    ans = (ans + ps[n - i] * B[i]) % mod;
  }
  for (int i = 0; i < n; i++) {
    ans = (ans + A[i + 1] * tav[n - i - 1] * C(i, k)) % mod;
  }
  cout << ans << endl;
  return 0;
}
