#include <bits/stdc++.h>
using namespace std;
long long n, a[1000001], f[1000001], d[1000001], r[1000001], sum[1000001];
long long pow(long long a, long long n) {
  long long r = 1;
  for (; n; n >>= 1, a = a * a % 1000000007ll)
    if (n & 1) r = r * a % 1000000007ll;
  return r % 1000000007ll;
}
long long c(int n, int k) {
  if (k < 0 || n < k) return 0;
  if (k == 0) return 1;
  return ((f[n] * 1ll * r[k]) % 1000000007ll * r[n - k]) % 1000000007ll;
}
int main() {
  long m;
  cin >> n >> m;
  for (int k = 1; k <= n; ++k) {
    char ch;
    cin >> ch;
    a[k] = ch - '0';
    if (k > 1 && k < n) sum[k] = sum[k - 1] + a[k];
  }
  f[0] = 1;
  r[0] = 1;
  if (n == 1) {
    cout << a[n];
    return 0;
  }
  if (m == 0) {
    long long ans = 0;
    for (int k = 1; k <= n; ++k) {
      ans *= 10;
      ans += a[k];
      ans %= 1000000007ll;
    }
    cout << ans;
    return 0;
  }
  for (int k = 1; k <= n; ++k) {
    f[k] = (f[k - 1] * k) % 1000000007ll;
    r[k] = pow(f[k], 1000000007ll - 2);
  }
  long long d = 1, ans = 0;
  for (int k = 1; k <= n - 1; ++k) {
    ans = (ans + ((c(n - 1 - k, m - 1) * d) % 1000000007ll * sum[n - k] %
                  1000000007ll)) %
          1000000007ll;
    ans =
        (ans + (c(n - k, m) % 1000000007ll * d * a[n - k + 1] % 1000000007ll)) %
        1000000007ll;
    ans = (ans +
           (c(n - 1 - k, m - 1) % 1000000007ll * d * (a[1]) % 1000000007ll)) %
          1000000007ll;
    d = (d * 10) % 1000000007ll;
  }
  cout << ans % 1000000007ll;
  return 0;
}
