#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
constexpr int he(int x, int y) { return x + y >= mod ? x + y - mod : x + y; }
constexpr int cha(int x, int y) { return x >= y ? x - y : x + mod - y; }
constexpr int mul(int x, int y) { return 1ll * x * y % mod; }
inline void add(int &a, int b) { a = he(a, b); }
char s[1000];
int a[1000], dp[1000][1000][12][2];
int n, m, ans;
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) dp[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 op = 0; op <= 1; ++op) {
          int mx = (op ? 9 : a[i + 1]);
          for (int t = 0; t <= mx; ++t) {
            add(dp[i + 1][j + (t >= k)][k][op | (t < mx)], dp[i][j][k][op]);
          }
        }
      }
    }
  }
  for (int k = 1; k <= 9; ++k) {
    int ji = 1;
    for (int i = 1; i <= n; ++i) {
      ans = he(ans, mul(ji, he(dp[n][i][k][0], dp[n][i][k][1])));
      ji = he(1, mul(ji, 10));
    }
  }
  cout << ans;
  return 0;
}
