#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <string>
#include <iterator>
#include <cassert>
#include <queue>
#include "vision.h"
using namespace std;

#define dbg(x) cerr << #x << ' '; print(x); cerr << endl;
void print(int x) { cerr << x; }
void print(long long x) { cerr << x; }
void print(char x) { cerr << x; }
void print(string x) { cerr << x; }
void print(double x) { cerr << x; }
template <class T> void print(vector <T> x) { cerr << "[ "; for (T i : x) { print(i); cerr << ' '; } cerr << ']'; }
template <class T> void print(set <T> x) { cerr << "[ "; for (T i : x) { print(i); cerr << ' '; } cerr << ']'; }
template <class T> void print(multiset <T> x) { cerr << "[ "; for (T i : x) { print(i); cerr << ' '; } cerr << ']'; }
template <class T, class V> void print(pair <T, V> x) { cerr << "{"; print(x.first); cerr << ' '; print(x.second); cerr << "}"; }

#define ll long long
#define OK cerr << "OK\n"
#define endl '\n'
#define all(x) (x).begin(), (x).end()
#define PII pair <int, int>
#define MP make_pair
#define inf 1e9 + 5
#define inf64 1e18 + 5;

vector<int> getVisionPattern1d() {
	return { 1, 3, 2 };
}
int getMove1d(vector<int> v) {
	int piv = v.size() / 2;
	if (v[piv] == 1) {
		if (v[0] == 3) return 0;
		return 2;
	}
	if (v[piv] == 2) {
		if (v[piv - 1] == 1) return piv - 1;
		return piv + 1;
	}
	if (v[piv] == 3) {
		if (v[piv - 1] == 2) return piv - 1;
		return piv + 1;
	}
	assert(1);
	return 0;
}

vector<vector<int>> getVisionPattern2d() {
	return {};
}
pair<int, int> getMove2d(vector<vector<int>> v) {
	return { -1, -1 };
}
