#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-6;
const long long INF = 0x3f3f3f3f3f3f3f3fll;
const int inf = 0x3f3f3f3f;
const int mod = 1e9 + 7;
const int maxn = 2e6 + 100;
char s[maxn];
int ans[20][20], a[maxn];
int g[20][20][20], cnt[20], dig[20][20], vis[10][10];
void solve() {
  scanf("%s", s + 1);
  int n = strlen(s + 1);
  for (int i = 1; (i) <= (n - 1); i++) {
    a[i] = ((s[i + 1] - '0') - (s[i] - '0') + 10) % 10;
  }
  for (int i = 0; (i) < (10); i++) {
    int now = i;
    while (now) {
      dig[i][++cnt[i]] = now;
      now = now + i;
      now %= 10;
    }
    dig[i][++cnt[i]] = now;
  }
  dig[0][1] = 0;
  cnt[0] = 1;
  memset(g, -1, sizeof(g));
  for (int i = 0; (i) < (10); i++)
    for (int j = 0; (j) < (10); j++)
      for (int k = 0; (k) < (10); k++) {
        int res = inf, mark = 0, flag = 0;
        for (int u = 1; (u) <= (cnt[i]); u++) {
          mark++;
          if (dig[i][u] == k) {
            flag = 1;
            break;
          }
        }
        if (flag) res = min(res, mark);
        mark = 0, flag = 0;
        for (int u = 1; (u) <= (cnt[j]); u++) {
          mark++;
          if (dig[j][u] == k) {
            flag = 1;
            break;
          }
        }
        if (flag) res = min(res, mark);
        for (int ui = 1; (ui) <= (cnt[i]); ui++) {
          mark = ui, flag = 0;
          for (int uj = 1; (uj) <= (cnt[j]); uj++) {
            mark++;
            if ((dig[j][uj] + dig[i][ui]) % 10 == k) {
              flag = 1;
              break;
            }
          }
          if (flag) res = min(res, mark);
        }
        for (int uj = 1; (uj) <= (cnt[j]); uj++) {
          mark = uj, flag = 0;
          for (int ui = 1; (ui) <= (cnt[i]); ui++) {
            mark++;
            if ((dig[j][uj] + dig[i][ui]) % 10 == k) {
              flag = 1;
              break;
            }
          }
          if (flag) res = min(res, mark);
        }
        g[i][j][k] = g[j][i][k] = (res == inf) ? -1 : res;
      }
  for (int i = 0; (i) < (10); i++)
    for (int j = 0; (j) < (10); j++)
      for (int k = 1; (k) <= (n - 1); k++) {
        if (~g[i][j][a[k]] && !vis[i][j])
          ans[i][j] += g[i][j][a[k]];
        else
          ans[i][j] = -1, vis[i][j] = 1;
      }
  for (int i = 0; (i) < (10); i++) {
    for (int j = 0; (j) < (10); j++) {
      if (~ans[i][j])
        printf("%d ", ans[i][j] - n + 1);
      else
        printf("%d ", ans[i][j]);
    }
    printf("\n");
  }
}
int main() {
  solve();
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  return 0;
}
