#include <cmath>
#include <iostream>
using namespace std;
std::pair<int, int> calculate_distance(int value, int x_position, int y_position) {
int index = value - 1;
int distance = -1 * (y_position * 3 + x_position - index);
int target_x = distance % 3;
int target_y = distance / 3;
if (x_position + target_x < 0) { // Underflow x
target_x += 3;
target_y--;
}
return std::pair<int, int>(target_x, target_y);
}
int main() {
// The representation of movements
std::pair<int, int> puzzle [3][3] { };
for (auto i = 0, a = 0, b = 0, c = 0; i < 3; ++i) {
cin >> a >> b >> c;
puzzle[0][i] = calculate_distance(a, 0, i);
puzzle[1][i] = calculate_distance(b, 1, i);
puzzle[2][i] = calculate_distance(c, 2, i);
}
for (auto i = 0; i < 3; ++i) {
cout << puzzle[0][i].first << "," << puzzle[0][i].second << ' ';
cout << puzzle[1][i].first << "," << puzzle[1][i].second << ' ';
cout << puzzle[2][i].first << "," << puzzle[2][i].second << endl;
}
return 0;
}
I2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RkOjpwYWlyPGludCwgaW50PiBjYWxjdWxhdGVfZGlzdGFuY2UoaW50IHZhbHVlLCBpbnQgeF9wb3NpdGlvbiwgaW50IHlfcG9zaXRpb24pIHsKICBpbnQgaW5kZXggPSB2YWx1ZSAtIDE7CgogIGludCBkaXN0YW5jZSA9IC0xICogKHlfcG9zaXRpb24gKiAzICsgeF9wb3NpdGlvbiAtIGluZGV4KTsKCiAgaW50IHRhcmdldF94ID0gZGlzdGFuY2UgJSAzOwogIGludCB0YXJnZXRfeSA9IGRpc3RhbmNlIC8gMzsKCiAgaWYgKHhfcG9zaXRpb24gKyB0YXJnZXRfeCA8IDApIHsgLy8gVW5kZXJmbG93IHgKICAgIHRhcmdldF94ICs9IDM7CiAgICB0YXJnZXRfeS0tOwogIH0KCiAgcmV0dXJuIHN0ZDo6cGFpcjxpbnQsIGludD4odGFyZ2V0X3gsIHRhcmdldF95KTsKfQoKaW50IG1haW4oKSB7CiAgLy8gVGhlIHJlcHJlc2VudGF0aW9uIG9mIG1vdmVtZW50cwogIHN0ZDo6cGFpcjxpbnQsIGludD4gcHV6emxlIFszXVszXSB7IH07CgogIGZvciAoYXV0byBpID0gMCwgYSA9IDAsIGIgPSAwLCBjID0gMDsgaSA8IDM7ICsraSkgewogICAgY2luID4+IGEgPj4gYiA+PiBjOwogICAgcHV6emxlWzBdW2ldID0gY2FsY3VsYXRlX2Rpc3RhbmNlKGEsIDAsIGkpOwogICAgcHV6emxlWzFdW2ldID0gY2FsY3VsYXRlX2Rpc3RhbmNlKGIsIDEsIGkpOwogICAgcHV6emxlWzJdW2ldID0gY2FsY3VsYXRlX2Rpc3RhbmNlKGMsIDIsIGkpOwogIH0KCiAgZm9yIChhdXRvIGkgPSAwOyBpIDwgMzsgKytpKSB7CiAgICBjb3V0IDw8IHB1enpsZVswXVtpXS5maXJzdCA8PCAiLCIgPDwgcHV6emxlWzBdW2ldLnNlY29uZCA8PCAnICc7CiAgICBjb3V0IDw8IHB1enpsZVsxXVtpXS5maXJzdCA8PCAiLCIgPDwgcHV6emxlWzFdW2ldLnNlY29uZCA8PCAnICc7CiAgICBjb3V0IDw8IHB1enpsZVsyXVtpXS5maXJzdCA8PCAiLCIgPDwgcHV6emxlWzJdW2ldLnNlY29uZCA8PCBlbmRsOwogIH0KCiAgcmV0dXJuIDA7Cn0=