#include <bits/stdc++.h>

using namespace std;
using ll = long long;

vector<int> getVisionPattern1d() {
    return {1, 1, 2, 1, 3};
}

/*
1 1 2 1 3
*/

int getMove1d(vector<int> v) {
    if (v == vector<int>{3, 1, 1}) return 2;
    if (v == vector<int>{1, 1, 3}) return 0;

    if (v == vector<int>{1, 1, 2}) return 2;
    if (v == vector<int>{2, 1, 1}) return 0;

    if (v == vector<int>{1, 1, 2, 1, 3}) return 3;
    if (v == vector<int>{3, 1, 2, 1, 1}) return 1;

    if (v == vector<int>{2, 1, 3}) return 2;
    if (v == vector<int>{3, 1, 2}) return 0;

    if (v == vector<int>{1, 2, 1, 3, 1, 1, 2}) return 4;
    if (v == vector<int>{2, 1, 1, 3, 1, 2, 1}) return 2;
    
    assert(false);
}

vector<vector<int>> getVisionPattern2d() {
    return {{1, 1, 2, 1, 3}};
}

pair<int, int> getMove2d(vector<vector<int>> kek) {
    auto v = kek[0];
    if (v == vector<int>{3, 1, 1}) return make_pair(0, 2);
    if (v == vector<int>{1, 1, 3}) return make_pair(0, 0);

    if (v == vector<int>{1, 1, 2}) return make_pair(0, 2);
    if (v == vector<int>{2, 1, 1}) return make_pair(0, 0);

    if (v == vector<int>{1, 1, 2, 1, 3}) return make_pair(0, 3);
    if (v == vector<int>{3, 1, 2, 1, 1}) return make_pair(0, 1);

    if (v == vector<int>{2, 1, 3}) return make_pair(0, 2);
    if (v == vector<int>{3, 1, 2}) return make_pair(0, 0);

    if (v == vector<int>{1, 2, 1, 3, 1, 1, 2}) return make_pair(0, 4);
    if (v == vector<int>{2, 1, 1, 3, 1, 2, 1}) return make_pair(0, 2);
    
    assert(false);
}