#include using namespace std; typedef long long ll; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b #define vl vector #define vii vector> #define vll vector> #define vvi vector> #define vvl vector> #define vvii vector>> #define vvll vector>> #define vst vector #define pii pair #define pll pair #define pb push_back #define all(x) (x).begin(),(x).end() #define mkunique(x) sort(all(x));(x).erase(unique(all(x)),(x).end()) #define fi first #define se second #define mp make_pair #define si(x) int(x.size()) const int mod=998244353,MAX=300005,INF=15<<26; vll basis; ll used=0; bool add(ll x,ll t){ for(auto [a,b]:basis){ if(chmin(x,x^a)){ t^=b; } } used=t; if(x){ basis.push_back(mp(x,t)); return 1; } return 0; } void ADD(vii &ans,pii s,pii g){ auto [a,b]=s; auto [c,d]=g; if(s.fi==g.fi||s.se==g.se||s.fi+s.se==g.fi+g.se||s.fi-s.se==g.fi-g.se){ ans.pb(g); }else{ if(b+2<=d){ ans.pb(mp(c,b)); ans.pb(mp(c,b+1)); ans.pb(mp(c,b)); ans.pb(mp(c,b+1)); ans.pb(mp(c,d)); }else if(d<=b-2){ ans.pb(mp(c,b)); ans.pb(mp(c,b-1)); ans.pb(mp(c,b)); ans.pb(mp(c,b-1)); ans.pb(mp(c,d)); }else{ ans.pb(mp(a,d)); ans.pb(mp(a+1,d)); ans.pb(mp(a,d)); ans.pb(mp(a+1,d)); ans.pb(mp(c,d)); } } } int main(){ std::ifstream in("text.txt"); std::cin.rdbuf(in.rdbuf()); cin.tie(0); ios::sync_with_stdio(false); ll H,W;cin>>H>>W; vii use; for(int i=0;i>x; if(add(x,(1LL<>Q; while(Q--){ ll X;cin>>X; used=0; if(add(X,0)){ basis.pop_back(); cout<<-1<<"\n"; }else{ vii need; for(int i=0;i