#include <bits/stdc++.h>
using namespace std;
int n;
long long now = 1, ans = 0, dp[710][710][9][2];
char str[710];
void solve() {
  scanf("%s", str + 1);
  n = strlen(str + 1);
  for (int i = 1; i <= 9; i++) dp[0][0][i][1] = 1;
  for (int i = 0; i < n; i++)
    for (int j = 0; j <= n; j++)
      for (int k = 1; k <= 9; k++)
        for (int l = 0; l <= 1; l++)
          if (dp[i][j][k][l]) {
            int f = (l ? str[i + 1] - '0' : 9);
            for (int g = 0; g <= f; g++)
              dp[i + 1][j + (g >= k)][k][l & (g == f)] =
                  (dp[i + 1][j + (g >= k)][k][l & (g == f)] + dp[i][j][k][l]) %
                  1000000007LL;
          }
  for (int i = 1; i <= n;
       i++, now = (now * 10 % 1000000007LL + 1) % 1000000007LL)
    for (int k = 1; k <= 9; k++)
      ans = (ans + now * ((dp[n][i][k][0] + dp[n][i][k][1]) % 1000000007LL) %
                       1000000007LL) %
            1000000007LL;
  printf("%lld\n", ans);
}
int main() {
  solve();
  return 0;
}
