#include <bits/stdc++.h>
using namespace std;
bool dbg = 0;
int N, K;
string S;
long long Pref[100005];
long long Fact[100005];
long long Power(long long base, long long expo) {
  long long Ans = 1;
  while (expo > 0) {
    if (expo % 2 == 1) {
      Ans = (Ans * base) % 1000000007;
    }
    expo >>= 1;
    base = (base * base) % 1000000007;
  }
  return Ans % 1000000007;
}
void pre() {
  Fact[0] = 1;
  for (int n = 1; n <= N + 5; ++n) {
    Fact[n] = Fact[n - 1] * n;
    Fact[n] %= 1000000007;
  }
  for (int n = 0; n < S.size(); ++n) {
    if (n == 0) {
      Pref[n] += (S[n] - '0');
    } else {
      Pref[n] += Pref[n - 1] + (S[n] - '0');
    }
    Pref[n] %= 1000000007;
  }
}
long long Find(long long n, long long r) {
  if (n < r) {
    return 0;
  }
  long long Ans = (Fact[n] % 1000000007) *
                  (Power((Fact[r] * Fact[n - r]) % 1000000007, 1000000007 - 2) %
                   1000000007);
  Ans %= 1000000007;
  return Ans;
}
int main() {
  cin >> N >> K;
  cin >> S;
  long long Ans = 0;
  pre();
  for (int n = 0; n < N - 1; ++n) {
    long long tans = 1ll;
    tans *= Power(10, n);
    tans %= 1000000007;
    tans *= Find(N - n - 2, K - 1);
    tans %= 1000000007;
    tans *= Pref[N - n - 2];
    Ans += tans;
    Ans %= 1000000007;
  }
  for (int n = 0; n < N; ++n) {
    long long tans = 1ll;
    tans *= 1ll * (S[n] - '0');
    tans *= Power(10, N - n - 1);
    tans %= 1000000007;
    tans *= Find(n, K);
    tans %= 1000000007;
    Ans += tans;
    Ans %= 1000000007;
  }
  cout << Ans << endl;
  return 0;
}
