#include <bits/stdc++.h>
using namespace std;
#define fastIO ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(0)
using ll = long long;
using pii = pair<int,int>;
using pll = pair<ll,ll>;
using vi = vector<int>;
using vll = vector<ll>;
using vpi = vector<pii>;
using vvi = vector<vi>;
const ll LINF = 1e18;
const int MOD = 1e9 + 7;
#define all(x) (x).begin(), (x).end()
#define read(v) for(auto& x : v) cin >> x
#define pb push_back
#define rs resize
#include "supertrees.h"
int construct(std::vector<std::vector<int>> p) {
int n = p.size();
vvi ans(n, vi (n, 0));
for (int i = 0; i < n-1; i++)
ans[i][i+1] = 1;
for (int i = n-1; i > 0; i--)
ans[i][i-1] = 1;
ans[0][n-1] = 1;
ans[n-1][0] = 1;
build(ans);
return 1;
}