#include <bits/stdc++.h>
const int maxn = 700 + 207;
const int mod = 1e9 + 7;
int bit[maxn], n;
int f[maxn][maxn][10][2];
int main() {
  {
    char s[maxn] = {0};
    scanf("%s", s + 1);
    n = strlen(s + 1);
    for (int i = (1); i <= (n); ++i) bit[i] = s[i] - 48;
  }
  for (int i = (0); i <= (9); ++i) f[0][0][i][1] = 1;
  for (int i = (0); i <= (n - 1); ++i)
    for (int j = (0); j <= (i); ++j)
      for (int k = (1); k <= (9); ++k)
        for (int c = (0); c <= (1); ++c)
          for (int x = (0); x <= ((c ? bit[i + 1] : 9)); ++x)
            (f[i + 1][j + (x >= k)][k][c && x == bit[i + 1]] +=
             f[i][j][k][c]) %= mod;
  int ans = 0;
  for (int k = (1); k <= (9); ++k) {
    int t = 1;
    for (int j = (1); j <= (n); ++j) {
      ans = (ans + 1ll * t * (f[n][j][k][0] + f[n][j][k][1]) % mod) % mod;
      t = (10ll * t + 1) % mod;
    }
  }
  printf("%d\n", ans);
  return 0;
}
