#include <bits/stdc++.h>
using namespace std;
int dp[10][10][10][10], pres_path;
void dfs(int x, int y, int u, int v, int p);
void dfs_next(int x, int y, int u, int v, int p) {
  int &t = dp[x][y][u][v];
  if (t == 0 or t > pres_path + 1) {
    t = ++pres_path;
    if (p < 10) dfs(x, y, u, v, p + 1);
    --pres_path;
  }
}
void dfs(int x, int y, int u, int v, int p) {
  dfs_next(x, y, u, (v + x) % 10, p), dfs_next(x, y, u, (v + y) % 10, p);
}
int main() {
  string s;
  ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr), cin >> s;
  for (int x = 0; x < int(10); ++x)
    for (int y = 0; y < int(10); ++y)
      for (int u = 0; u < int(10); ++u) dfs(x, y, u, u, 1);
  for (int x = 0; x < int(10); ++x) {
    for (int y = 0; y < int(10); ++y) {
      bool valid = true;
      int count = 0;
      for (int l, i = 0, j = 1, k = s.size(); j < k and valid; i = j++)
        if ((l = dp[x][y][s[i] - '0'][s[j] - '0']))
          count += l - 1;
        else
          count = -1, valid = false;
      cout << count << ' ';
    }
    cout << endl;
  }
}
