#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
long long qpow(long long a, long long b, long long m) {
  long long r = 1;
  a %= m;
  for (; b; b >>= 1) {
    if (b & 1) r = r * a % m;
    a = a * a % m;
  }
  return r;
}
const long long inf = 1e18;
const int maxn = 2e6 + 10;
long long cnt[10][10][10][10];
long long num[10][10];
long long ans[10][10];
bool vis[10];
char a[maxn];
struct node {
  int u;
  long long p;
  node() {}
  node(int u, long long p) : u(u), p(p) {}
};
queue<node> que;
long long res(int x, int y, int s, int t) {
  if (x == 0 && y == 0 && s != t) return -1;
  if ((x == 0 || y == 0) && s == t) return 0;
  memset(vis, 0, sizeof(vis));
  long long ans0 = inf;
  while (!que.empty()) que.pop();
  que.push(node((s + x) % 10, 1));
  que.push(node((s + y) % 10, 1));
  vis[s + x] = true;
  vis[s + y] = true;
  vis[s] = true;
  vis[t] = false;
  while (!que.empty()) {
    int u = que.front().u;
    long long p = que.front().p;
    que.pop();
    if (u == t) {
      ans0 = p - 1;
      break;
    }
    int n1 = (u + x) % 10, n2 = (u + y) % 10;
    if (!vis[n1]) que.push(node(n1, p + 1));
    if (!vis[n2]) que.push(node(n2, p + 1));
    vis[n1] = vis[n2] = true;
  }
  return ans0 == inf ? -1 : ans0;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> a;
  for (int x = 0; x < 10; x++) {
    for (int y = 0; y < 10; y++) {
      for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
          cnt[x][y][i][j] = res(x, y, i, j);
        }
      }
    }
  }
  for (int i = 1; a[i] != '\0'; i++) {
    int x = a[i - 1] - '0', y = a[i] - '0';
    num[x][y]++;
  }
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      for (int s = 0; s < 10; s++) {
        for (int t = 0; t < 10; t++) {
          if ((cnt[i][j][s][t] == -1 && num[s][t]) || ans[i][j] == -1) {
            ans[i][j] = -1;
            break;
          }
          ans[i][j] += (long long)num[s][t] * cnt[i][j][s][t];
        }
      }
    }
  }
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      if (j) cout << " ";
      cout << ans[i][j];
    }
    cout << endl;
  }
  return 0;
}
