// Oficjalny "symulator chaosu" (generator permutacji i uszkodzen) - do
// samodzielnego testowania odpornosci rozwiazania. Czyta macierz 10x10 ze
// standardowego wejscia, miesza kazdy wiersz i kasuje 0..2 komorki (laczne),
// po czym wypisuje zaburzona macierz. Odpowiednik kodu z tresci zadania.

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
    vector<vector<int>> m(10, vector<int>(10));
    for (int i = 0; i < 10; ++i)
        for (int j = 0; j < 10; ++j)
            if (!(cin >> m[i][j])) return 0;

    for (int i = 0; i < 10; ++i)
        shuffle(m[i].begin(), m[i].end(), rng);

    int do_usuniecia = uniform_int_distribution<int>(0, 2)(rng);
    while (do_usuniecia > 0) {
        int r = uniform_int_distribution<int>(0, 9)(rng);
        int c = uniform_int_distribution<int>(0, 9)(rng);
        if (m[r][c] != -1) { m[r][c] = -1; do_usuniecia--; }
    }

    for (int i = 0; i < 10; ++i) {
        for (int j = 0; j < 10; ++j)
            cout << m[i][j] << (j == 9 ? "" : " ");
        cout << "\n";
    }
    cout.flush();
    return 0;
}
