func_code_string: #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;     }   }   