#include <bits/stdc++.h>
using namespace std;
long long int powe(int a, int n) {
  if (n == 0) return 1;
  if (n == 1) return a;
  long long int tmp = powe(a, n >> 1);
  tmp = (tmp * tmp) % 1000000007;
  if (n & 1) tmp = (tmp * a) % 1000000007;
  return tmp;
}
long long int facts[100010], invfacts[100010], p_sum[100010], p_10[100010];
long long int ncr(int n, int r) {
  if (n < r) return 0;
  long long int ans = facts[n];
  ans = (ans * invfacts[n - r]) % 1000000007;
  return (ans * invfacts[r]) % 1000000007;
}
int main() {
  facts[0] = facts[1] = 1;
  invfacts[0] = invfacts[1] = 1;
  p_10[0] = 1;
  p_10[1] = 10;
  for (int i = 2; i <= 100000; ++i) {
    p_10[i] = (p_10[i - 1] * 10) % 1000000007;
    facts[i] = (facts[i - 1] * i) % 1000000007;
    invfacts[i] = (invfacts[i - 1] * powe(i, 1000000007 - 2)) % 1000000007;
  }
  int n, k;
  cin >> n >> k;
  string ip;
  cin >> ip;
  long long int ans = 0;
  p_sum[0] = ip[0] - '0';
  for (int i = 1; i < n; ++i) {
    p_sum[i] = p_sum[i - 1] + ip[i] - '0';
  }
  for (int l = 0; l <= n - 2; ++l) {
    long long int tmp = p_sum[n - l - 2] % 1000000007;
    tmp = (tmp * ncr(n - l - 2, k - 1)) % 1000000007;
    tmp = (tmp * p_10[l]) % 1000000007;
    ans = (ans + tmp) % 1000000007;
  }
  for (int i = 0; i <= n - 1; ++i) {
    long long int tmp = ip[i] - '0';
    tmp = (tmp * p_10[n - i - 1]) % 1000000007;
    tmp = (tmp * ncr(i, k)) % 1000000007;
    ans = (ans + tmp) % 1000000007;
  }
  cout << ans << endl;
  return 0;
}
