#include <bits/stdc++.h>
using namespace std;
const int kN = 100010;
const long long kMod = 1000000007;
int N, K, Q[kN];
long long F[kN], C1[kN], C2[kN], T[kN], S[kN];
void read();
void solve();
long long pwr(long long x, long long y) {
  if (y == 0)
    return 1;
  else {
    long long t = pwr(x, y / 2);
    return y % 2 == 0 ? t * t % kMod : t * t % kMod * x % kMod;
  }
}
int main() {
  ios::sync_with_stdio(false);
  read();
  solve();
  return 0;
}
void read() {
  char ch;
  cin >> N >> K;
  for (int i = 1; i <= N; ++i) {
    cin >> ch;
    Q[i] = int(ch - '0');
  }
}
void solve() {
  F[0] = 1;
  for (int i = 1; i <= N; ++i) F[i] = F[i - 1] * i % kMod;
  if (K > 0) {
    for (int i = K - 1; i <= N; ++i)
      C1[i] = F[i] * pwr(F[K - 1], kMod - 2) % kMod *
              pwr(F[i - (K - 1)], kMod - 2) % kMod;
  }
  for (int i = K; i <= N; ++i)
    C2[i] = F[i] * pwr(F[K], kMod - 2) % kMod * pwr(F[i - K], kMod - 2) % kMod;
  for (int i = 1; i <= N; ++i) S[i] = S[i - 1] + Q[i];
  T[0] = 1;
  for (int i = 1; i <= N; ++i) T[i] = T[i - 1] * 10 % kMod;
  long long res = 0;
  for (int i = 0; i <= N - 2; ++i)
    res += S[N - 1 - i] * C1[N - 2 - i] % kMod * T[i] % kMod, res %= kMod;
  for (int i = N; i >= K + 1; --i)
    res += Q[i] * T[N - i] % kMod * C2[i - 1] % kMod, res %= kMod;
  cout << res << "\n";
}
