#include <bits/stdc++.h>
using namespace std;
long long v[100010];
long long sum[100010];
long long fat[100010];
long long pot[100010];
void pre() {
  fat[0] = 1;
  for (int i = 1; i < 100010; i++) {
    fat[i] = fat[i - 1] * i;
    fat[i] %= 1000000007;
  }
  pot[0] = 1;
  for (int i = 1; i < 100010; i++) {
    pot[i] = pot[i - 1] * 10;
    pot[i] %= 1000000007;
  }
}
long long mpow(long long base, long long exp) {
  if (exp == 0) return 1;
  if ((exp & 1) == 1) return (base * mpow(base, exp - 1)) % 1000000007;
  long long ret = mpow(base, exp / 2);
  return (ret * ret) % 1000000007;
}
long long comb(long long a, long long b) {
  if (b > a) return 0;
  long long ret = (fat[a] * mpow(fat[b], 1000000007 - 2)) % 1000000007;
  ret = (ret * mpow(fat[a - b], 1000000007 - 2)) % 1000000007;
  return ret;
}
int main() {
  pre();
  int n, k;
  scanf("%d %d", &n, &k);
  for (int i = 0; i < n; i++) {
    char c;
    scanf(" %c", &c);
    v[i] = c - '0';
    sum[i] = v[i];
    if (i > 0) sum[i] += sum[i - 1];
  }
  long long r = 0;
  for (int i = 0; i < n - 1; i++) {
    long long aux = sum[i] * pot[n - 2 - i];
    aux %= 1000000007;
    aux *= comb(i, k - 1);
    aux %= 1000000007;
    r += aux;
    r %= 1000000007;
  }
  for (int i = 0; i < n; i++) {
    long long aux = v[i] * pot[n - 1 - i];
    aux %= 1000000007;
    aux *= comb(i, k);
    aux %= 1000000007;
    r += aux;
    r %= 1000000007;
  }
  printf("%lld\n", r);
  return 0;
}
