#include <bits/stdc++.h>
using namespace std;
int powm[100005];
int fact[100005];
int sum[100005];
string s;
void powers_of_10(int m) {
  powm[0] = 1;
  for (int i = 1; i <= m; i++) powm[i] = 1LL * powm[i - 1] * 10 % 1000000007;
}
void factorials(int m) {
  fact[0] = 1;
  for (int i = 1; i <= m; i++) fact[i] = 1LL * i * fact[i - 1] % 1000000007;
}
void sums(int m) {
  sum[0] = s[0] - '0';
  for (int i = 1; i < m; i++) {
    sum[i] = sum[i - 1] + (s[i] - '0');
    if (sum[i] >= 1000000007) sum[i] -= 1000000007;
  }
}
void euclid(int a, int b, long long& x, long long& y) {
  if (b == 0) {
    x = 1;
    y = 0;
  } else {
    long long x0, y0;
    euclid(b, a % b, x0, y0);
    x = y0;
    y = x0 - (a / b) * y0;
  }
}
int invers_modular(int n) {
  long long x, y;
  euclid(n, 1000000007, x, y);
  while (x < 0) x += 1000000007;
  return (int)x;
}
int comb(int n, int k) {
  if (k > n) return 0;
  int Ret = fact[n];
  Ret = 1LL * Ret * invers_modular(fact[n - k]) % 1000000007;
  Ret = 1LL * Ret * invers_modular(fact[k]) % 1000000007;
  return Ret;
}
int main() {
  ios_base::sync_with_stdio(false);
  int n, k;
  cin >> n >> k;
  cin >> s;
  powers_of_10(n);
  factorials(n);
  sums(n);
  int FirstSum = 0;
  int SecondSum = 0;
  for (int i = 0; i < n; i++) {
    FirstSum += 1LL * (s[i] - '0') * powm[n - 1 - i] * comb(i, k) % 1000000007;
    if (FirstSum >= 1000000007) FirstSum -= 1000000007;
  }
  for (int i = 0; i <= n - 2; i++) {
    SecondSum += 1LL * (1LL * sum[n - i - 2] * powm[i] % 1000000007) *
                 comb(n - i - 2, k - 1) % 1000000007;
    if (SecondSum >= 1000000007) SecondSum -= 1000000007;
  }
  cout << (SecondSum + FirstSum) % 1000000007;
}
