#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
long long n, ans, f[703][703][12][3];
char s[1000];
int a[1000];
int main() {
  scanf("%s", s + 1);
  n = strlen(s + 1);
  for (int i = 1; i <= n; i++) a[i] = s[i] - '0';
  for (int i = 0; i <= 9; i++) f[0][0][i][0] = 1;
  for (int i = 0; i < n; i++)
    for (int j = 0; j <= i; j++)
      for (int k = 1; k <= 9; k++)
        for (int l = 0; l <= 1; l++) {
          int li = l ? 9 : a[i + 1];
          for (int p = 0; p <= li; p++)
            f[i + 1][j + (p >= k)][k][l | (p < a[i + 1])] =
                (f[i + 1][j + (p >= k)][k][l | (p < a[i + 1])] +
                 f[i][j][k][l]) %
                mod;
        }
  for (int i = 1; i <= 9; i++) {
    long long tp = 1;
    for (int j = 1; j <= n; j++) {
      ans = (ans + tp * (f[n][j][i][0] + f[n][j][i][1]) % mod) % mod;
      tp = (10 * tp % mod + 1 % mod);
    }
  }
  printf("%I64d", ans);
  return 0;
}
