#include <bits/stdc++.h>
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
using namespace std;
using ll = long long;
struct DSU{
vector<int> par, sz;
DSU(int n){
par.resize(n);
sz.resize(n, 1);
iota(all(par), 0);
};
int find(int x){
while(x!=par[x]) x = par[x];
return x;
}
void unite(int x, int y){
x = find(x); y = find(y);
if (x==y) return;
if (sz[x]<sz[y]) swap(x, y);
sz[x] += sz[y];
par[y] = x;
}
};
string process(vector<vector<string>> a, int xx, int yy, int k, int n){
if (n==1){
DSU dsu(9);
for (int i = 1; i<3; i++){
for (int j = 0; j<3; j++){
if (a[i][j][0]=='1' && a[i-1][j][0]=='1') dsu.unite(i*3+j, (i-1)*3+j);
}
}
for (int i = 0; i<3; i++){
for (int j = 1; j<3; j++){
if (a[i][j][0]=='1' && a[i][j-1][0]=='1') dsu.unite(i*3+j, i*3+j-1);
}
}
int res = 0;
set<int> st;
for (int i = 0; i<3; i++){
for (int j = 0; j<3; j++){
if (a[i][j][0]=='1') st.insert(dsu.find(i*3+j));
}
}
res = st.size();
string ans = string(100, '0');
for (int i = 0; i<10; i++){
if (res&(1<<i)) ans[i] = '1';
}
return ans;
}
else if (n==2){
if (k==n-1){
vector<vector<char>> matrix(5, vector<char>(5));
for (int i = 0; i<3; i++){
for (int j = 0; j<3; j++){
int ind = 0;
for (int x = i; x<i+3; x++){
for (int y = j; y<j+3; y++){
matrix[x][y] = a[i][j][ind];
ind++;
}
}
}
}
DSU dsu(25);
for (int i = 1; i<5; i++){
for (int j = 0; j<5; j++){
if (matrix[i][j]==1 && matrix[i-1][j]=='1') dsu.unite(i*5+j, (i-1)*5+j);
}
}
for (int i = 0; i<5; i++){
for (int j = 1; j<5; j++){
if (matrix[i][j]==1 && matrix[i][j-1]=='1') dsu.unite(i*5+j, i*5+j-1);
}
}
int res = 0;
set<int> st;
for (int i = 0; i<5; i++){
for (int j = 0; j<5; j++){
if (matrix[i][j]=='1') st.insert(dsu.find(i*5+j));
}
}
res = st.size();
string ans = string(100, '0');
for (int i = 0; i<10; i++){
if (res&(1<<i)) ans[i] = '1';
}
return ans;
}
else {
string ans;
for (int i = xx; i<xx+3; i++){
for (int j = yy; j<yy+3; j++){
//if (a.size()<=i || a[i].size()<=j) return string(100, '0');
ans.push_back(a[i][j][0]);
}
}
ans += string(91, '0');
return ans;
}
}
return string(100, '0');
}
// int main(){
// ios::sync_with_stdio(false);
// cin.tie(0);
// }