void solve() { int n,m,a,b,c; sd(n);sd(m); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { adj[i][j] = INF; } adj[i][i] = 0; } for(int i=0;i<m;i++) { sd(a);sd(b);sd(c); adj[a][b] = min(adj[a][b], c); adj[b][a] = min(adj[b][a], c); edges[i].F.F = a; edges[i].F.S = b; edges[i].S = c; } for(int k=0;k<n;k++) { for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { adj[i][j] = min(adj[i][j], adj[i][k] + adj[k][j]); } } } /*for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { cout<<adj[i][j]<<" "; } cout<<endl; }*/ ans.clear(); int flag = 0; for(int i=0;i<m;i++) { flag = 0; for(int j=0;j<n;j++) { for(int k=0;k<n;k++) { if(adj[j][edges[i].F.F] + adj[edges[i].F.S][k] + edges[i].S == adj[j][k]) { flag = 1; if(flag==1)break; } } if(flag == 1)break; } if(flag == 0) { ans.PB(i); } } for(int i=0;i<ans.size();i++) { printf("%d\n",ans[i]); } //cout<<endl; }
int main() { // unique { const VI v1 = { 1, 2, 3, 3, 4, 4, 5 }; const VI v2 = { 5, 3, 4, 4, 2, 3, 1 }; VI vt = { 1, 2, 3, 4, 5 }; VI w; w = v1; sx::unique(w); CHECK(w == vt); w = v1; auto r = sx::unique(std::move(w)); CHECK(r == vt); w = v2; sx::sort_unique(w); CHECK(w == vt); w = v2; r = sx::sort_unique(std::move(w)); CHECK(r == vt); } // insert_at_end { VI v1 = { 1, 2, 3 }; const VI v2 = { 4, 5, 6 }; const VI vt = { 1, 2, 3, 4, 5, 6 }; VI v; v = v1; sx::insert_at_end(v, v2.begin(), v2.end()); CHECK(v == vt); v = v1; sx::insert_at_end(v, v2); CHECK(v == vt); } // set_difference { const VI v1 = { 1, 2, 3, 4, 5 }; const VI v2 = { 2, 4, 5 }; const VI vt = { 1, 3 }; VI c(v1.size()); sx::set_difference(v1, v2, c); CHECK(c == vt); c = sx::set_difference(v1, v2, VI(v1.size())); CHECK(c == vt); auto d = sx::set_difference(v1, v2); static_assert(std::is_same<decltype(d), std::vector<int> >::value, ""); CHECK(d == vt); } // set_intersection { const VI v1 = { 1, 2, 4, 5 }; const VI v2 = { 2, 3, 5 }; const VI vt = { 2, 5 }; VI c(v1.size()); sx::set_intersection(v1, v2, c); CHECK(c == vt); c.assign(10, 10); c = sx::set_intersection(v1, v2, VI(v1.size())); CHECK(c == vt); auto d = sx::set_intersection(v1, v2); static_assert(std::is_same<decltype(d), std::vector<int> >::value, ""); CHECK(d == vt); } // scalar_rdiv_range { const VI v1 = { 3, 4, 6 }; const VI vt = { 4, 3, 2 }; VI v2; v2 = v1; CHECK(vt == sx::scalar_rdiv_range(std::move(v2), 12)); v2 = v1; sx::scalar_rdiv_range(v2, 12); CHECK(vt == v2); } // range_div_scalar { const VI v1 = { 3, 6, 9 }; const VI vt = { 1, 2, 3 }; VI v2; v2 = v1; CHECK(vt == sx::range_div_scalar(std::move(v2), 3)); v2 = v1; sx::range_div_scalar(v2, 3); CHECK(vt == v2); } // range_mul_scalar { const VI v1 = { 3, 6, 9 }; const VI vt = { 9, 18, 27 }; VI v2; v2 = v1; CHECK(vt == sx::range_mul_scalar(std::move(v2), 3)); v2 = v1; sx::range_mul_scalar(v2, 3); CHECK(vt == v2); } { const VI a = { 10, 20, 30, 40, 50, 60, 70, 80, 90 }; const VI v = { 35, 10, 5, 100, 90, 65, 70, 90 }; auto r = sx::searchsorted<char>(a, v); static_assert( std::is_same<std::remove_reference_t<decltype(*begin(r))>, char>::value, ""); CHECK(r.size() == v.size()); for (int i = 0; i < v.size(); ++i) { auto it = std::lower_bound(a.begin(), a.end(), v[i]); CHECK((it - a.begin()) == r[i]); } } { const VI a = { 10, 4, 5, 23, 54 }; auto ds = sx::sum<double>(a); static_assert(std::is_same<decltype(ds), double>::value, ""); CHECK(std::accumulate(BEGINEND(a), 0) == sx::sum(a)); CHECK(std::accumulate(BEGINEND(a), 0) == ds); } { const VD a = { 10, 4, 5, 23, 54 }; VD vt; for (auto d : a) vt.push_back(log(d)); VD b; b = a; sx::log(b); VD c; c = a; auto d = sx::log(std::move(c)); CHECK(vt == b); CHECK(vt == d); } { const VI a = { 10, 4, 5, 23, 54 }; auto ds = sx::mean<double>(a); static_assert(std::is_same<decltype(ds), double>::value, ""); CHECK((std::accumulate(BEGINEND(a), 0) / a.size()) == sx::mean(a)); CHECK((std::accumulate(BEGINEND(a), 0) / (double)a.size()) == ds); } { const int x = 10; const int z = 12; for (int y = x - 1; y <= z + 1; ++y) { const bool qq = x <= y && y <= z; const bool sq = x < y && y <= z; const bool ss = x < y && y < z; CHECK(sx::leq_and_leq(x, y, z) == qq); CHECK(sx::less_and_leq(x, y, z) == sq); CHECK(sx::less_and_less(x, y, z) == ss); } } { VI a(1), b; CHECK(sx::isempty(a) == a.empty()); CHECK(sx::isempty(b) == b.empty()); } { const VI v1 = { 6, 10, 3, 2, 3, 8, 7, 4, 1, 9, 3, 1, 3, 4, 6, 8, 10, 7, 2, 10 }; const VI vt = { 0, 2, 2, 4, 2, 0, 2, 2, 2, 1, 3 }; auto va = sx::bincount(std::vector<int>(100), v1); VI v2(50); sx::bincount(v2, v1); auto v3 = sx::bincount<int>(v1); CHECK(va == vt); CHECK(v2 == vt); CHECK(v3 == vt); } printf("finished.\n"); //trigger xcode console return test_result(); }
void factorize(int a,VI &ret) { ret.clear(); for(int i=1;i<=a;i++) if((a % i) == 0) ret.pb(i); }
#define FOR(i,a,b) for (int i = (a); i < (b); i++) #define REP(i,n) FOR(i,0,n) #define ALL(v) (v).begin(), (v).end() #define FIT(it,v) for (__typeof((v).begin()) it = (v).begin(); it != (v).end(); it++) #define OUT(A) cout << #A << " = "<< (A) << endl #define present(c, e) ((c).find((e)) != (c).end()) #define cpresent(c, e) (find(all(c), (e)) != (c).end()) int case_number; #define printg case_number++, printf("Case #%d: ",case_number), printf #define gout case_number++, printf("Case #%d: ",case_number), cout int N, d[10], n[10], w[10], e[10], s[10], dd[10], dp[10], ds[10]; int res; VI h, D; int ad[10][10], aw[10][10], ae[10][10], as[10][10]; void init() { } void input() { D.clear(); h.clear(); cin >> N; REP(i, N){ cin >> d[i] >> n[i] >> w[i] >> e[i] >> s[i] >> dd[i] >> dp[i] >> ds[i]; w[i] += 1000; e[i] += 1000; } REP(i, N){
int main() { cin.sync_with_stdio(0); int t; cin>>t; while(t--) { int n,k,ans=MOD,idx=1,sz=1,temp=0,minm=MOD; cin>>n>>k; string str; cin>>str; FOR(i,0,n-1) temp = temp + (str[i] == '0'+ i%2); minm = min(minm, temp); temp = 0; FOR(i,0,n-1) temp = temp + (str[i] == '0'+ (i+1)%2); minm = min(minm, temp); //cout<<minm<<endl; if(k>=minm) { printf("1\n"); continue; } VI vec; while(idx<n) { if(str[idx] == str[idx-1]) sz++; else { if(sz>1) vec.PB(sz); sz=1; } idx++; } if(sz>1) vec.PB(sz); sort(vec.begin(), vec.end()); reverse(vec.begin(), vec.end()); if(k==0) { printf("%d\n", vec[0]); continue; } vector<PII> myVec; idx=0;sz=1; while(idx<vec.size()-1) { if(vec[idx] == vec[idx+1]) sz++; else { myVec.PB(MP(vec[idx],sz)); sz=1; } idx++; } myVec.PB(MP(vec[idx],sz)); int start=0, end=myVec.size()-1; while(start<=end) { int mid = (start+end)/2, flips=0; FOR(i,0,mid-1) flips += myVec[i].second * getflips(myVec[i].first, myVec[mid].first); printf("%d %d\n", flips, myVec[mid].first); if(flips <= k) { if(ans > myVec[mid].first) { ans = myVec[mid].first; idx = mid; } start = mid + 1; } else end = mid - 1; } start = myVec[idx].first, end = 2; if(idx != myVec.size()-1) end = myVec[idx + 1].first; while(start<=end) { int mid = (start+end)/2, flips=0; FOR(i,0,idx) flips += myVec[i].second * getflips(myVec[i].first, mid); if(flips <= k) { ans = min(ans, mid); start = mid + 1; } else end = mid - 1; } printf("%d\n", ans); } }
REP(i,k){ ans.push_back(light[i].second); minl = min(minl, light[i].first); }
int main(){ int n; si(n); scanf("%s",s); int i = 0; int palLen = 0; l.clear(); while(i < n){ if(i > palLen and s[i-palLen-1] == s[i]){ palLen += 2; i++; continue; } l.PB(palLen); int s = SZ(l) - 2; int e = s - palLen; int fl = 0; for(int j=s;j>e;j--){ int d = j - e - 1; if(l[j] == d){ palLen = d; fl = 1; // *** break; } l.PB(min(d,l[j])); } if(!fl){ palLen = 1; i++; } } l.PB(palLen); int s = SZ(l) - 2; int e = s - (2*n + 1 - SZ(l)); for(int i=s;i>e;i--){ int d = i - e - 1; l.PB(min(d,l[i])); } for(int i=0;i<SZ(l);i++){ if(!i) continue; if(i==SZ(l)-1) continue; if(i&1){ total += (l[i]+1)/2; start[i/2 - l[i]/2] += 1; finish[i/2 + l[i]/2] += 1; start[i/2+1] -= 1; finish[i/2-1] -= 1; } else{ total += l[i]/2; start[i/2 - l[i]/2] += 1; finish[i/2 - 1 + l[i]/2] += 1; start[i/2] -= 1; finish[i/2-1] -= 1; } total %= MOD; } for(int i=1;i<n;i++){ start[i] += start[i-1]; start[i] %= MOD; } for(int i=n-2;i>=0;i--){ finish[i] += finish[i+1]; finish[i] %= MOD; } for(int i=1;i<n;i++){ finish[i] += finish[i-1]; finish[i] %= MOD; } LL sub = 0; LL ans = ((total*(total-1))/2) % MOD; for(int i=1;i<n;i++){ sub += (start[i] * finish[i-1]) % MOD; sub %= MOD; } ans -= sub; ans += MOD; ans %= MOD; lldout(ans); trace(total); return 0; }
int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); int n,m,k,i,x,y,z,par[3010],vis[3010][3010]={0},flag=0,l,par1,d; VI v; vector <vector<int> > G; map <pair<int,PII>,int> mp; cin >>n>>m>>k; G.resize(n+1); for(i=0;i<m;i++) { cin >>x>>y; G[x].PB(y); G[y].PB(x); } for(i=0;i<k;i++) { cin >>x>>y>>z; mp[MP(x,MP(y,z))]++; } queue <pair<int,PII> > q; q.push(MP(1,MP(-1,0))); par[1]=-1; vis[1][0]=1; while(!(q.empty())) { x=q.front().F,par1=(q.front()).S.F,d=(q.front()).S.S; if(x==n) { flag=1; break; } q.pop(); l=G[x].size(); for(i=0;i<l;i++) { if(vis[G[x][i]]==0&&mp[MP(par1,MP(x,G[x][i]))]==0) { par[G[x][i]]=x; vis[G[x][i]]=1; q.push(MP(G[x][i],MP(x,d+1))); } } } if(flag==0) { cout <<"-1\n"; return 0; } cout <<d<<"\n"; x=n; while(x!=-1) { v.PB(x); x=par[x]; } l=v.size(); for(i=l-1;i>=0;i--) cout <<v[i]<<" "; cout <<"\n"; return 0; }
DisjointSet (int n): n(n), rank(n, 0) { for (int i = 0; i < n; i++) { parent.push_back(i); } }
// adjusts value of the k-th element by v (v can be +ve/inc or -ve/dec) void adjust(int k, int v) { for (; k < (int)ft.size(); k += LSOne(k)) ft[k] += v; }
#define CLEAR(table, v) memset(table, v, sizeof(table)); #define PRINT2(table, W, H) REP(y, H) { REP(x, W) cout<<table[y][x]<<" "; cout<<"\n"; } #define PRINT3(table, W, H, D) REP(d, D) { REP(y, H) { REP(x, W) cout<<table[d][y][x]<<" "; cout<<"\n"; } cout<<"\n"; } template <typename T0, typename T1> std::ostream& operator<<(std::ostream& os, const map<T0, T1>& v) { for( typename map<T0, T1>::const_iterator p = v.begin(); p!=v.end(); p++ ){os << p->first << ": " << p->second << " ";} return os; } template <typename T0, typename T1> std::ostream& operator<<(std::ostream& os, const pair<T0, T1>& v) { os << v.first << ": " << v.second << " "; return os; } template <typename T> std::ostream& operator<<(std::ostream& os, const vector<T>& v) { for( int i = 0; i < (int)v.size(); i++ ) { os << v[i] << " "; } return os; } template <typename T> std::ostream& operator<<(std::ostream& os, const set<T>& v) { vector<T> tmp(v.begin(), v.end()); os << tmp; return os; } template <typename T> std::ostream& operator<<(std::ostream& os, const deque<T>& v) { vector<T> tmp(v.begin(), v.end()); os << tmp; return os; } template <typename T> std::ostream& operator<<(std::ostream& os, const vector<vector<T> >& v) { for( int i = 0; i < (int)v.size(); i++ ) { os << v[i] << endl; } return os; } class BitwiseAnd { public: ll add; VVI w; int N, M; VI S; bool check(bool init) { REP(bit, 60) { VI one; REP(i, S.size()) { if((S[i]>>bit)&1) one.PB(i); } if(one.size()>2) return false; if(one.size()==2) w[one[1]][one[0]] = w[one[0]][one[1]] = 1; if(!init && one.size()==1 && w[one[0]][S.size()]==0) { add |= 1LL<<bit; w[one[0]][S.size()] = w[S.size()][one[0]] = 1; } } if(!init) { S.PB(add);
int main() { int t; s(t); while(t--) { topo.clear(); int n; s(n); for(int i=1;i<=n;i++) { v[i].clear(); vt[i].clear(); value[i]=0;input[i]=0; } rep(i,n) { int k;s(k); while(k--) { int a;s(a); v[a].pb(i+1); vt[i+1].pb(a); } } mem(visited,0); rep(i,n) { if(!visited[i+1]) dfs1(i+1); } int co=0; for(int i=topo.size()-1;i>=0;i--) { if(visited[topo[i]]) dfs2(topo[i],co++); } mem(input,0); for(int i=1;i<=n;i++) { for(int j=0;j<sz(v[i]);j++) { if(value[i]!=value[v[i][j]]) input[value[v[i][j]]]++; } } int count=0; for(int i=0;i<co;i++) { // cout<<i<<" "<<input[i]<<endl; if(input[i]==0) count++; } if(count>1) cout<<"0"<<endl; else { count=0; for(int i=1;i<=n;i++) { // cout<<input[value[i]]<<endl; if(input[value[i]]==0) count++; } cout<<count<<endl; } }
void solve(VI ans) { sort(ans.begin(),ans.end()); int sz=ans.size(); if(sz>=fs) { return; } if(ct==n) { fs=sz; finn=ans; return; } int i,j,k,pos,ti; VI tv; VI::iterator it; for(i=0;i<n;++i) { if(fl[i]) { continue; } ++ct; for(j=0;j<sz;++j) { fl[i]=0; pos=101; ti=tarr[i]+ans[j]; for(k=j+1;k<sz;++k) { if(ans[k]==ti) { fl[i]=1; break; } else if(ans[k]>ti) { pos=k; break; } } if(fl[i]) { tv=ans; solve(tv); } else { tv=ans; fl[i]=1; if(pos<101) { it=lower_bound(tv.begin(),tv.end(),ti); tv.insert(it,ti); solve(tv); } else { tv.PB(ti); solve(tv); } } fl[i]=0; } --ct; } for(i=0;i<n;++i) { if(fl[i]) { continue; } ++ct; for(j=1;j<sz;++j) { fl[i]=0; pos=101; ti=ans[j]-tarr[i]; if(ti<0) { continue; } for(k=0;k<j;++k) { if(ans[k]==ti) { fl[i]=1; break; } else if(ans[k]>ti) { pos=k; break; } } if(fl[i]) { tv=ans; solve(tv); } else { tv=ans; fl[i]=1; if(pos<101) { it=lower_bound(tv.begin(),tv.end(),ti); tv.insert(it,ti); solve(tv); } else { tv.PB(ti); solve(tv); } } fl[i]=0; } --ct; } }
VI find_common2(VI& va, VI& vb) { VI result; find_common_helper2(va.begin(), va.end(), vb.begin(), vb.end(), result); return result; }
bool CDeck::FindValidSet(int const pIdx) { if(PlayerHand[pIdx]->GetNumSelectedCards() > 0) return false; //should not select any CCardStack *Stack = PlayerHand[pIdx]->GetCardStack(); int Idx = 0; for(VI vi = Stack->begin(); vi != Stack->end(); ++vi) { SDL_PumpEvents(); int Rank = vi->Rank(); int Suit = vi->Suit(); int a = PlayerHand[pIdx]->FindCard(Rank + 1, Suit); int b = PlayerHand[pIdx]->FindCard(Rank + 2, Suit); int c = PlayerHand[pIdx]->FindCard(Rank - 1, Suit); int d = PlayerHand[pIdx]->FindCard(Rank - 2, Suit); int e[3]; //cards with same suit e[0] = PlayerHand[pIdx]->FindMoreSameRank(0, Rank, Suit); if(e[0] != -1) { e[1] = PlayerHand[pIdx]->FindMoreSameRank(e[0] + 1, Rank, Suit); if(e[1] != -1) e[2] = PlayerHand[pIdx]->FindMoreSameRank(e[1] + 1, Rank, Suit); } if(a != -1 && b != -1) { PlayerHand[pIdx]->SelectCard(Idx); PlayerHand[pIdx]->SelectCard(a); PlayerHand[pIdx]->SelectCard(b); return true; } if(a != -1 && c != -1) { PlayerHand[pIdx]->SelectCard(Idx); PlayerHand[pIdx]->SelectCard(a); PlayerHand[pIdx]->SelectCard(c); return true; } if(c != -1 && d != -1) { PlayerHand[pIdx]->SelectCard(Idx); PlayerHand[pIdx]->SelectCard(c); PlayerHand[pIdx]->SelectCard(d); return true; } if(e[0] != -1 && e[1] != -1) { PlayerHand[pIdx]->SelectCard(Idx); PlayerHand[pIdx]->SelectCard(e[0]); PlayerHand[pIdx]->SelectCard(e[1]); if(e[2] != -1) PlayerHand[pIdx]->SelectCard(e[2]); return true; } Idx++; }//end of for loop return false; }
VI quickSort(VI &v){ quickSort(v,0,v.size()-1); return v; }
int main() { //ios::sync_with_stdio(false); ll N; while(cin>>N) { VI ans; if(N==0) { ans.PB(6);ans.PB(12);ans.PB(11);ans.PB(14);ans.PB(0);ans.PB(15);ans.PB(11);ans.PB(0);ans.PB(9);ans.PB(2);ans.PB(0);ans.PB(14);ans.PB(5);ans.PB(8);ans.PB(10);ans.PB(7);ans.PB(0);ans.PB(14);ans.PB(14);ans.PB(0); } if(N==1) { ans.PB(14);ans.PB(0);ans.PB(0);ans.PB(3);ans.PB(8);ans.PB(11);ans.PB(7);ans.PB(2);ans.PB(15);ans.PB(9);ans.PB(0);ans.PB(12);ans.PB(0);ans.PB(0);ans.PB(2);ans.PB(6);ans.PB(14);ans.PB(6);ans.PB(0);ans.PB(7);ans.PB(3);ans.PB(12);ans.PB(8);ans.PB(3);ans.PB(15);ans.PB(2);ans.PB(13);ans.PB(12);ans.PB(15);ans.PB(8);ans.PB(9);ans.PB(12);ans.PB(3);ans.PB(2);ans.PB(2);ans.PB(15);ans.PB(8);ans.PB(6);ans.PB(13);ans.PB(14);ans.PB(0);ans.PB(3);ans.PB(4);ans.PB(14);ans.PB(13);ans.PB(0);ans.PB(1);ans.PB(0);ans.PB(9);ans.PB(13);ans.PB(14);ans.PB(10);ans.PB(3);ans.PB(15);ans.PB(12);ans.PB(13);ans.PB(12);ans.PB(0);ans.PB(0);ans.PB(13);ans.PB(3);ans.PB(0);ans.PB(8);ans.PB(13);ans.PB(14);ans.PB(14);ans.PB(11);ans.PB(0);ans.PB(14);ans.PB(11);ans.PB(11);ans.PB(0);ans.PB(0);ans.PB(6);ans.PB(10);ans.PB(15);ans.PB(13);ans.PB(15);ans.PB(0);ans.PB(15);ans.PB(15);ans.PB(13);ans.PB(3);ans.PB(11);ans.PB(12);ans.PB(0);ans.PB(3);ans.PB(11);ans.PB(2);ans.PB(0);ans.PB(1);ans.PB(0);ans.PB(3);ans.PB(10);ans.PB(0);ans.PB(8);ans.PB(15);ans.PB(1);ans.PB(4);ans.PB(0);ans.PB(15);ans.PB(3);ans.PB(0);ans.PB(0);ans.PB(11);ans.PB(0);ans.PB(8);ans.PB(1);ans.PB(15);ans.PB(15);ans.PB(5);ans.PB(12);ans.PB(15);ans.PB(4);ans.PB(8);ans.PB(8);ans.PB(0);ans.PB(4);ans.PB(0);ans.PB(15);ans.PB(0);ans.PB(0);ans.PB(2);ans.PB(13);ans.PB(8);ans.PB(3);ans.PB(12);ans.PB(13);ans.PB(2);ans.PB(9);ans.PB(12);ans.PB(15);ans.PB(13);ans.PB(9);ans.PB(0);ans.PB(3);ans.PB(12);ans.PB(10);ans.PB(8);ans.PB(5);ans.PB(0);ans.PB(11);ans.PB(0);ans.PB(5);ans.PB(2);ans.PB(0);ans.PB(0);ans.PB(11);ans.PB(0);ans.PB(8);ans.PB(0);ans.PB(3);ans.PB(2);ans.PB(11);ans.PB(12);ans.PB(0);ans.PB(15);ans.PB(2);ans.PB(14);ans.PB(8);ans.PB(14);ans.PB(0);ans.PB(2);ans.PB(4);ans.PB(0);ans.PB(11);ans.PB(0);ans.PB(11);ans.PB(14);ans.PB(11);ans.PB(11);ans.PB(13);ans.PB(7);ans.PB(2);ans.PB(11);ans.PB(7);ans.PB(12);ans.PB(2);ans.PB(15);ans.PB(8);ans.PB(4);ans.PB(7);ans.PB(6);ans.PB(0);ans.PB(15);ans.PB(6);ans.PB(4);ans.PB(9);ans.PB(11);ans.PB(0);ans.PB(6);ans.PB(8);ans.PB(3);ans.PB(12);ans.PB(15);ans.PB(12);ans.PB(3);ans.PB(9);ans.PB(11);ans.PB(2); } if(N==2) { ans.PB(8);ans.PB(8);ans.PB(3);ans.PB(14);ans.PB(11);ans.PB(11);ans.PB(13);ans.PB(12);ans.PB(13);ans.PB(14);ans.PB(15);ans.PB(13);ans.PB(14);ans.PB(14);ans.PB(9);ans.PB(12);ans.PB(2);ans.PB(0);ans.PB(12);ans.PB(8);ans.PB(0);ans.PB(0);ans.PB(11);ans.PB(4);ans.PB(11);ans.PB(3);ans.PB(15);ans.PB(10);ans.PB(1);ans.PB(11);ans.PB(0);ans.PB(2);ans.PB(14);ans.PB(1);ans.PB(9);ans.PB(10);ans.PB(9);ans.PB(13);ans.PB(2);ans.PB(3);ans.PB(13);ans.PB(2);ans.PB(8);ans.PB(6);ans.PB(13);ans.PB(0);ans.PB(6);ans.PB(13);ans.PB(0);ans.PB(6);ans.PB(5);ans.PB(4);ans.PB(7);ans.PB(14);ans.PB(7);ans.PB(10);ans.PB(12);ans.PB(2);ans.PB(11);ans.PB(13);ans.PB(9);ans.PB(4);ans.PB(0);ans.PB(3);ans.PB(9);ans.PB(12);ans.PB(14);ans.PB(11);ans.PB(2);ans.PB(13);ans.PB(9);ans.PB(6);ans.PB(4);ans.PB(15);ans.PB(5);ans.PB(1);ans.PB(15);ans.PB(9);ans.PB(10);ans.PB(7);ans.PB(3);ans.PB(3);ans.PB(12);ans.PB(15);ans.PB(0);ans.PB(0);ans.PB(11);ans.PB(0);ans.PB(0);ans.PB(0);ans.PB(5);ans.PB(4);ans.PB(13);ans.PB(5);ans.PB(2);ans.PB(11);ans.PB(4);ans.PB(3);ans.PB(5);ans.PB(8);ans.PB(12);ans.PB(9);ans.PB(12);ans.PB(3);ans.PB(15);ans.PB(13);ans.PB(5);ans.PB(6);ans.PB(13);ans.PB(3);ans.PB(15);ans.PB(13);ans.PB(11);ans.PB(0);ans.PB(2);ans.PB(2);ans.PB(4);ans.PB(11);ans.PB(4);ans.PB(0);ans.PB(12);ans.PB(9);ans.PB(7);ans.PB(9);ans.PB(0);ans.PB(4);ans.PB(2);ans.PB(13);ans.PB(14);ans.PB(2);ans.PB(1);ans.PB(2);ans.PB(0);ans.PB(12);ans.PB(3);ans.PB(12);ans.PB(0);ans.PB(0);ans.PB(3);ans.PB(13);ans.PB(7);ans.PB(0);ans.PB(0);ans.PB(0);ans.PB(14);ans.PB(0);ans.PB(12);ans.PB(4);ans.PB(5);ans.PB(3);ans.PB(13);ans.PB(12);ans.PB(2);ans.PB(0);ans.PB(5);ans.PB(15);ans.PB(13);ans.PB(13);ans.PB(5);ans.PB(0);ans.PB(2);ans.PB(2);ans.PB(0);ans.PB(8);ans.PB(2);ans.PB(12);ans.PB(12);ans.PB(8);ans.PB(0);ans.PB(15);ans.PB(1);ans.PB(14);ans.PB(15);ans.PB(15);ans.PB(9);ans.PB(11);ans.PB(15);ans.PB(13);ans.PB(13);ans.PB(2);ans.PB(0);ans.PB(0);ans.PB(12);ans.PB(0);ans.PB(14);ans.PB(1);ans.PB(3);ans.PB(0);ans.PB(13);ans.PB(3);ans.PB(2);ans.PB(5);ans.PB(0);ans.PB(0);ans.PB(0);ans.PB(7);ans.PB(2);ans.PB(13);ans.PB(9); } if(N==3) { ans.PB(0);ans.PB(14);ans.PB(12);ans.PB(7);ans.PB(0);ans.PB(6);ans.PB(9);ans.PB(3);ans.PB(14);ans.PB(1);ans.PB(12);ans.PB(14);ans.PB(2);ans.PB(12);ans.PB(14);ans.PB(8);ans.PB(7);ans.PB(14);ans.PB(0);ans.PB(5);ans.PB(7);ans.PB(2);ans.PB(12);ans.PB(1);ans.PB(3);ans.PB(0);ans.PB(8);ans.PB(11);ans.PB(14);ans.PB(12);ans.PB(0);ans.PB(3);ans.PB(1);ans.PB(6);ans.PB(9);ans.PB(15);ans.PB(0);ans.PB(0);ans.PB(2);ans.PB(0);ans.PB(3);ans.PB(13);ans.PB(4);ans.PB(3);ans.PB(5);ans.PB(14);ans.PB(4);ans.PB(9);ans.PB(6);ans.PB(0);ans.PB(14);ans.PB(9);ans.PB(12);ans.PB(1);ans.PB(1);ans.PB(11);ans.PB(12);ans.PB(15);ans.PB(12);ans.PB(1);ans.PB(5);ans.PB(15);ans.PB(3);ans.PB(9);ans.PB(2);ans.PB(4);ans.PB(14);ans.PB(3);ans.PB(5);ans.PB(0);ans.PB(1);ans.PB(12);ans.PB(12);ans.PB(0);ans.PB(2);ans.PB(13);ans.PB(2);ans.PB(8);ans.PB(14);ans.PB(1);ans.PB(6);ans.PB(0);ans.PB(1);ans.PB(3);ans.PB(14);ans.PB(13);ans.PB(2);ans.PB(14);ans.PB(13);ans.PB(2);ans.PB(1);ans.PB(15);ans.PB(7);ans.PB(0);ans.PB(2);ans.PB(13);ans.PB(7);ans.PB(2);ans.PB(0);ans.PB(3);ans.PB(9);ans.PB(6);ans.PB(8);ans.PB(12);ans.PB(12);ans.PB(2);ans.PB(6);ans.PB(14);ans.PB(13);ans.PB(14);ans.PB(2);ans.PB(15);ans.PB(2);ans.PB(9);ans.PB(2);ans.PB(8);ans.PB(10);ans.PB(12);ans.PB(3);ans.PB(4);ans.PB(9);ans.PB(11);ans.PB(3);ans.PB(14);ans.PB(1);ans.PB(3);ans.PB(6);ans.PB(15);ans.PB(6);ans.PB(3);ans.PB(14);ans.PB(0);ans.PB(3);ans.PB(12);ans.PB(10);ans.PB(2);ans.PB(2);ans.PB(2);ans.PB(14);ans.PB(13);ans.PB(7);ans.PB(12);ans.PB(10);ans.PB(0);ans.PB(5);ans.PB(9);ans.PB(2);ans.PB(14);ans.PB(12);ans.PB(13);ans.PB(11);ans.PB(11);ans.PB(0);ans.PB(0);ans.PB(0);ans.PB(7);ans.PB(1);ans.PB(8);ans.PB(3);ans.PB(10);ans.PB(10);ans.PB(2);ans.PB(2);ans.PB(2);ans.PB(5);ans.PB(9);ans.PB(15);ans.PB(13);ans.PB(2);ans.PB(12);ans.PB(13);ans.PB(12);ans.PB(0);ans.PB(15);ans.PB(12);ans.PB(8);ans.PB(13);ans.PB(0);ans.PB(15);ans.PB(0);ans.PB(13);ans.PB(9);ans.PB(13);ans.PB(0);ans.PB(15);ans.PB(0);ans.PB(6);ans.PB(6);ans.PB(7);ans.PB(0);ans.PB(1);ans.PB(8);ans.PB(0);ans.PB(12);ans.PB(13);ans.PB(0);ans.PB(12);ans.PB(0);ans.PB(14);ans.PB(15); } if(N==4) { ans.PB(12);ans.PB(0);ans.PB(2);ans.PB(14);ans.PB(4);ans.PB(14);ans.PB(0);ans.PB(7);ans.PB(12);ans.PB(4);ans.PB(5);ans.PB(14);ans.PB(2);ans.PB(9);ans.PB(6);ans.PB(5);ans.PB(4);ans.PB(5);ans.PB(4);ans.PB(15);ans.PB(12);ans.PB(15);ans.PB(14);ans.PB(14);ans.PB(2);ans.PB(4);ans.PB(9);ans.PB(13);ans.PB(9);ans.PB(0);ans.PB(8);ans.PB(9);ans.PB(12);ans.PB(3);ans.PB(8);ans.PB(10);ans.PB(7);ans.PB(12);ans.PB(15);ans.PB(10);ans.PB(12);ans.PB(3);ans.PB(3);ans.PB(3);ans.PB(14);ans.PB(3);ans.PB(4);ans.PB(13);ans.PB(0);ans.PB(0);ans.PB(13);ans.PB(8);ans.PB(3);ans.PB(12);ans.PB(0);ans.PB(10);ans.PB(14);ans.PB(14);ans.PB(15);ans.PB(13);ans.PB(15);ans.PB(4);ans.PB(0);ans.PB(13);ans.PB(13);ans.PB(15);ans.PB(8);ans.PB(9);ans.PB(8);ans.PB(2);ans.PB(11);ans.PB(5);ans.PB(11);ans.PB(2);ans.PB(2);ans.PB(0);ans.PB(2);ans.PB(12);ans.PB(0);ans.PB(2);ans.PB(3);ans.PB(3);ans.PB(2);ans.PB(3);ans.PB(2);ans.PB(2);ans.PB(3);ans.PB(0);ans.PB(0);ans.PB(7);ans.PB(11);ans.PB(9);ans.PB(0);ans.PB(15);ans.PB(0);ans.PB(9);ans.PB(0);ans.PB(12);ans.PB(0);ans.PB(0);ans.PB(0);ans.PB(10);ans.PB(10);ans.PB(8);ans.PB(15);ans.PB(5);ans.PB(15);ans.PB(7);ans.PB(11);ans.PB(11);ans.PB(0);ans.PB(14);ans.PB(14);ans.PB(8);ans.PB(9);ans.PB(0);ans.PB(1);ans.PB(0);ans.PB(6);ans.PB(1);ans.PB(11);ans.PB(6);ans.PB(3);ans.PB(8);ans.PB(3);ans.PB(7);ans.PB(13);ans.PB(0);ans.PB(0);ans.PB(12);ans.PB(2);ans.PB(14);ans.PB(15);ans.PB(5);ans.PB(7);ans.PB(0);ans.PB(12);ans.PB(2);ans.PB(9);ans.PB(3);ans.PB(7);ans.PB(0);ans.PB(0);ans.PB(11);ans.PB(12);ans.PB(2);ans.PB(8);ans.PB(8);ans.PB(0);ans.PB(9); } if(N==5) { ans.PB(9);ans.PB(13);ans.PB(9);ans.PB(11);ans.PB(13);ans.PB(1);ans.PB(2);ans.PB(12);ans.PB(7);ans.PB(6);ans.PB(13);ans.PB(14);ans.PB(0);ans.PB(15);ans.PB(2);ans.PB(9);ans.PB(13);ans.PB(8);ans.PB(12);ans.PB(11);ans.PB(14);ans.PB(3);ans.PB(1);ans.PB(0);ans.PB(11);ans.PB(0);ans.PB(11);ans.PB(7);ans.PB(5);ans.PB(11);ans.PB(8);ans.PB(2);ans.PB(13);ans.PB(8);ans.PB(13);ans.PB(4);ans.PB(3);ans.PB(9);ans.PB(13);ans.PB(9);ans.PB(0);ans.PB(6);ans.PB(2);ans.PB(2);ans.PB(15);ans.PB(1);ans.PB(9);ans.PB(15);ans.PB(1);ans.PB(0);ans.PB(2);ans.PB(3);ans.PB(9);ans.PB(11);ans.PB(10);ans.PB(11);ans.PB(1);ans.PB(13);ans.PB(1);ans.PB(14);ans.PB(13);ans.PB(13);ans.PB(14);ans.PB(3);ans.PB(2);ans.PB(11);ans.PB(3);ans.PB(1);ans.PB(15);ans.PB(4);ans.PB(1);ans.PB(3);ans.PB(8);ans.PB(0);ans.PB(11);ans.PB(12);ans.PB(15);ans.PB(10);ans.PB(13);ans.PB(0);ans.PB(6);ans.PB(0);ans.PB(15);ans.PB(6);ans.PB(4);ans.PB(8);ans.PB(4);ans.PB(2);ans.PB(2);ans.PB(2);ans.PB(9);ans.PB(14);ans.PB(8);ans.PB(15);ans.PB(15);ans.PB(15);ans.PB(13);ans.PB(7);ans.PB(14);ans.PB(14);ans.PB(0);ans.PB(14);ans.PB(13);ans.PB(11);ans.PB(12);ans.PB(2);ans.PB(13);ans.PB(10);ans.PB(13);ans.PB(4);ans.PB(12);ans.PB(11);ans.PB(6);ans.PB(12);ans.PB(10);ans.PB(4);ans.PB(9);ans.PB(1);ans.PB(1);ans.PB(2);ans.PB(7);ans.PB(15);ans.PB(5);ans.PB(3);ans.PB(1);ans.PB(7);ans.PB(12);ans.PB(12);ans.PB(3);ans.PB(7);ans.PB(8);ans.PB(0);ans.PB(8);ans.PB(15);ans.PB(10);ans.PB(12);ans.PB(15);ans.PB(3);ans.PB(9);ans.PB(15);ans.PB(5);ans.PB(7);ans.PB(0);ans.PB(0);ans.PB(4);ans.PB(6);ans.PB(0);ans.PB(3);ans.PB(0);ans.PB(14); } if(N==6) { ans.PB(14);ans.PB(0);ans.PB(0);ans.PB(3);ans.PB(8);ans.PB(11);ans.PB(7);ans.PB(2);ans.PB(15);ans.PB(9);ans.PB(0);ans.PB(12);ans.PB(0);ans.PB(0);ans.PB(2);ans.PB(6);ans.PB(14);ans.PB(6);ans.PB(0);ans.PB(7);ans.PB(3);ans.PB(12);ans.PB(8);ans.PB(3);ans.PB(15);ans.PB(2);ans.PB(13);ans.PB(12);ans.PB(15);ans.PB(8);ans.PB(9);ans.PB(12);ans.PB(3);ans.PB(2);ans.PB(2);ans.PB(15);ans.PB(8);ans.PB(6);ans.PB(13);ans.PB(14);ans.PB(0);ans.PB(3);ans.PB(4);ans.PB(14);ans.PB(13);ans.PB(0);ans.PB(1);ans.PB(0);ans.PB(9);ans.PB(13);ans.PB(14);ans.PB(10);ans.PB(3);ans.PB(15);ans.PB(12);ans.PB(13);ans.PB(12);ans.PB(0);ans.PB(0);ans.PB(13);ans.PB(3);ans.PB(0);ans.PB(8);ans.PB(13);ans.PB(14);ans.PB(14);ans.PB(11);ans.PB(0);ans.PB(14);ans.PB(11);ans.PB(11);ans.PB(0);ans.PB(0);ans.PB(6);ans.PB(10);ans.PB(15);ans.PB(13);ans.PB(15);ans.PB(0);ans.PB(15);ans.PB(15);ans.PB(13);ans.PB(3);ans.PB(11);ans.PB(12);ans.PB(0);ans.PB(3);ans.PB(11);ans.PB(2);ans.PB(0);ans.PB(1);ans.PB(0);ans.PB(3);ans.PB(10);ans.PB(0);ans.PB(8);ans.PB(15);ans.PB(1);ans.PB(4);ans.PB(0);ans.PB(15);ans.PB(3);ans.PB(0);ans.PB(0);ans.PB(11);ans.PB(0);ans.PB(8);ans.PB(1);ans.PB(15);ans.PB(15);ans.PB(5);ans.PB(12);ans.PB(15);ans.PB(4);ans.PB(8);ans.PB(8);ans.PB(0);ans.PB(4);ans.PB(0);ans.PB(15);ans.PB(0);ans.PB(0);ans.PB(2);ans.PB(13);ans.PB(8);ans.PB(3);ans.PB(12);ans.PB(13);ans.PB(2);ans.PB(9);ans.PB(12);ans.PB(15);ans.PB(13);ans.PB(9);ans.PB(0);ans.PB(3);ans.PB(12);ans.PB(10);ans.PB(8);ans.PB(5);ans.PB(0);ans.PB(11);ans.PB(0);ans.PB(5);ans.PB(2);ans.PB(0);ans.PB(0);ans.PB(11);ans.PB(0);ans.PB(8); } if(N==7) { ans.PB(0);ans.PB(11);ans.PB(5);ans.PB(14);ans.PB(0);ans.PB(0);ans.PB(7);ans.PB(1);ans.PB(1);ans.PB(1);ans.PB(1);ans.PB(15);ans.PB(14);ans.PB(2);ans.PB(12);ans.PB(13);ans.PB(0);ans.PB(14);ans.PB(0);ans.PB(11);ans.PB(13);ans.PB(6);ans.PB(0);ans.PB(4);ans.PB(3);ans.PB(2);ans.PB(7);ans.PB(9);ans.PB(12);ans.PB(8);ans.PB(3);ans.PB(13);ans.PB(10);ans.PB(0);ans.PB(3);ans.PB(0);ans.PB(11);ans.PB(2);ans.PB(0);ans.PB(8);ans.PB(0);ans.PB(0);ans.PB(15);ans.PB(14);ans.PB(9);ans.PB(9);ans.PB(11);ans.PB(14);ans.PB(2);ans.PB(1);ans.PB(0);ans.PB(13);ans.PB(3);ans.PB(5);ans.PB(8);ans.PB(2);ans.PB(15);ans.PB(2);ans.PB(0);ans.PB(7);ans.PB(0);ans.PB(0);ans.PB(10);ans.PB(3);ans.PB(8);ans.PB(14);ans.PB(9);ans.PB(0);ans.PB(2);ans.PB(8);ans.PB(3);ans.PB(14);ans.PB(13);ans.PB(0);ans.PB(11);ans.PB(12);ans.PB(11);ans.PB(15);ans.PB(8);ans.PB(1);ans.PB(1);ans.PB(7);ans.PB(3);ans.PB(2);ans.PB(7);ans.PB(0);ans.PB(5);ans.PB(2);ans.PB(11);ans.PB(14);ans.PB(6);ans.PB(13);ans.PB(2);ans.PB(12);ans.PB(0);ans.PB(3);ans.PB(0);ans.PB(2);ans.PB(7);ans.PB(13);ans.PB(13);ans.PB(8);ans.PB(0);ans.PB(8);ans.PB(0);ans.PB(0);ans.PB(1);ans.PB(0);ans.PB(12);ans.PB(2);ans.PB(2);ans.PB(10);ans.PB(9);ans.PB(14);ans.PB(12);ans.PB(9);ans.PB(11);ans.PB(0);ans.PB(2);ans.PB(1);ans.PB(1);ans.PB(5);ans.PB(0);ans.PB(2);ans.PB(14);ans.PB(9);ans.PB(13);ans.PB(5);ans.PB(11);ans.PB(13);ans.PB(4);ans.PB(9);ans.PB(1);ans.PB(8);ans.PB(14);ans.PB(3);ans.PB(2);ans.PB(0);ans.PB(11);ans.PB(0);ans.PB(0);ans.PB(1);ans.PB(11);ans.PB(11);ans.PB(13);ans.PB(2);ans.PB(14);ans.PB(3);ans.PB(12);ans.PB(0);ans.PB(8);ans.PB(5);ans.PB(0);ans.PB(12);ans.PB(12);ans.PB(9);ans.PB(13);ans.PB(14);ans.PB(14);ans.PB(2);ans.PB(12);ans.PB(12);ans.PB(7);ans.PB(3);ans.PB(7);ans.PB(0);ans.PB(8);ans.PB(0);ans.PB(14);ans.PB(8);ans.PB(11);ans.PB(3);ans.PB(3);ans.PB(2);ans.PB(1);ans.PB(0);ans.PB(7);ans.PB(8);ans.PB(13);ans.PB(2); } if(N==8) { ans.PB(2);ans.PB(7);ans.PB(12);ans.PB(0);ans.PB(10);ans.PB(15);ans.PB(2);ans.PB(14);ans.PB(13);ans.PB(11);ans.PB(11);ans.PB(0);ans.PB(6);ans.PB(3);ans.PB(13);ans.PB(11);ans.PB(4);ans.PB(0);ans.PB(9);ans.PB(3);ans.PB(15);ans.PB(14);ans.PB(3);ans.PB(0);ans.PB(3);ans.PB(0);ans.PB(1);ans.PB(2);ans.PB(14);ans.PB(11);ans.PB(2);ans.PB(0);ans.PB(1);ans.PB(5);ans.PB(3);ans.PB(1);ans.PB(15);ans.PB(0);ans.PB(15);ans.PB(13);ans.PB(11);ans.PB(9);ans.PB(2);ans.PB(15);ans.PB(9);ans.PB(12);ans.PB(12);ans.PB(6);ans.PB(11);ans.PB(12);ans.PB(14);ans.PB(10);ans.PB(2);ans.PB(1);ans.PB(3);ans.PB(9);ans.PB(15);ans.PB(10);ans.PB(12);ans.PB(8);ans.PB(2);ans.PB(10);ans.PB(3);ans.PB(3);ans.PB(6);ans.PB(13);ans.PB(1);ans.PB(0);ans.PB(12);ans.PB(8);ans.PB(8);ans.PB(2);ans.PB(0);ans.PB(4);ans.PB(15);ans.PB(4);ans.PB(12);ans.PB(2);ans.PB(13);ans.PB(13);ans.PB(3);ans.PB(12);ans.PB(2);ans.PB(1);ans.PB(3);ans.PB(15);ans.PB(13);ans.PB(2);ans.PB(0);ans.PB(14);ans.PB(15);ans.PB(2);ans.PB(0);ans.PB(7);ans.PB(12);ans.PB(3);ans.PB(13);ans.PB(15);ans.PB(14);ans.PB(1);ans.PB(0);ans.PB(0);ans.PB(1);ans.PB(11);ans.PB(7);ans.PB(2);ans.PB(15);ans.PB(0);ans.PB(3);ans.PB(9);ans.PB(7);ans.PB(8);ans.PB(0);ans.PB(0);ans.PB(3);ans.PB(13);ans.PB(13);ans.PB(3);ans.PB(0);ans.PB(10);ans.PB(12);ans.PB(7);ans.PB(0);ans.PB(11);ans.PB(0);ans.PB(12);ans.PB(11);ans.PB(4);ans.PB(1);ans.PB(3);ans.PB(9);ans.PB(15);ans.PB(0);ans.PB(3);ans.PB(3);ans.PB(2);ans.PB(6);ans.PB(8);ans.PB(3);ans.PB(13);ans.PB(14);ans.PB(13);ans.PB(0);ans.PB(15);ans.PB(5);ans.PB(10);ans.PB(12);ans.PB(0);ans.PB(1);ans.PB(4);ans.PB(2);ans.PB(3);ans.PB(15);ans.PB(9);ans.PB(0);ans.PB(14);ans.PB(13);ans.PB(11);ans.PB(12);ans.PB(11);ans.PB(9);ans.PB(1);ans.PB(1);ans.PB(3);ans.PB(13);ans.PB(14);ans.PB(13);ans.PB(2);ans.PB(13);ans.PB(8);ans.PB(2);ans.PB(11);ans.PB(6);ans.PB(1);ans.PB(14);ans.PB(4);ans.PB(9);ans.PB(0);ans.PB(7);ans.PB(8);ans.PB(15);ans.PB(3);ans.PB(0);ans.PB(4);ans.PB(15);ans.PB(11);ans.PB(0);ans.PB(2);ans.PB(11);ans.PB(1);ans.PB(11);ans.PB(9);ans.PB(11);ans.PB(4);ans.PB(14);ans.PB(5);ans.PB(0);ans.PB(14);ans.PB(14);ans.PB(1); } if(N==9) { ans.PB(4);ans.PB(3);ans.PB(10);ans.PB(8);ans.PB(2);ans.PB(3);ans.PB(11);ans.PB(3);ans.PB(5);ans.PB(11);ans.PB(7);ans.PB(10);ans.PB(11);ans.PB(11);ans.PB(5);ans.PB(10);ans.PB(9);ans.PB(8);ans.PB(0);ans.PB(0);ans.PB(9);ans.PB(5);ans.PB(1);ans.PB(3);ans.PB(0);ans.PB(15);ans.PB(7);ans.PB(3);ans.PB(9);ans.PB(3);ans.PB(13);ans.PB(11);ans.PB(0);ans.PB(0);ans.PB(1);ans.PB(13);ans.PB(3);ans.PB(15);ans.PB(12);ans.PB(9);ans.PB(8);ans.PB(14);ans.PB(15);ans.PB(15);ans.PB(11);ans.PB(13);ans.PB(7);ans.PB(1);ans.PB(1);ans.PB(13);ans.PB(7);ans.PB(15);ans.PB(3);ans.PB(0);ans.PB(12);ans.PB(13);ans.PB(0);ans.PB(15);ans.PB(0);ans.PB(0);ans.PB(9);ans.PB(15);ans.PB(3);ans.PB(12);ans.PB(2);ans.PB(2);ans.PB(0);ans.PB(2);ans.PB(15);ans.PB(8);ans.PB(12);ans.PB(2);ans.PB(9);ans.PB(9);ans.PB(8);ans.PB(14);ans.PB(0);ans.PB(8);ans.PB(15);ans.PB(3);ans.PB(8);ans.PB(4);ans.PB(6);ans.PB(12);ans.PB(3);ans.PB(0);ans.PB(14);ans.PB(0);ans.PB(1);ans.PB(8);ans.PB(0);ans.PB(1);ans.PB(9);ans.PB(14);ans.PB(11);ans.PB(3);ans.PB(15);ans.PB(11);ans.PB(0);ans.PB(8);ans.PB(13);ans.PB(4);ans.PB(3);ans.PB(1);ans.PB(12);ans.PB(14);ans.PB(2);ans.PB(0);ans.PB(14);ans.PB(2);ans.PB(13);ans.PB(0);ans.PB(2);ans.PB(8);ans.PB(7);ans.PB(2);ans.PB(12);ans.PB(14);ans.PB(3);ans.PB(11);ans.PB(12);ans.PB(12);ans.PB(9);ans.PB(9);ans.PB(15);ans.PB(9);ans.PB(14);ans.PB(11);ans.PB(0);ans.PB(12);ans.PB(0);ans.PB(2);ans.PB(2);ans.PB(1);ans.PB(3);ans.PB(11);ans.PB(0);ans.PB(6);ans.PB(14);ans.PB(3);ans.PB(11);ans.PB(6);ans.PB(10);ans.PB(2);ans.PB(0);ans.PB(3);ans.PB(4);ans.PB(15);ans.PB(5);ans.PB(3);ans.PB(14);ans.PB(4);ans.PB(12);ans.PB(14);ans.PB(1);ans.PB(0);ans.PB(4);ans.PB(11);ans.PB(4);ans.PB(0);ans.PB(3);ans.PB(1);ans.PB(15);ans.PB(0);ans.PB(13);ans.PB(14);ans.PB(11);ans.PB(14);ans.PB(11);ans.PB(15);ans.PB(5);ans.PB(15);ans.PB(9);ans.PB(12);ans.PB(15);ans.PB(12);ans.PB(11);ans.PB(2);ans.PB(5);ans.PB(12);ans.PB(1);ans.PB(10);ans.PB(7);ans.PB(0);ans.PB(7);ans.PB(11);ans.PB(6);ans.PB(12);ans.PB(8);ans.PB(8);ans.PB(0);ans.PB(15);ans.PB(10);ans.PB(15);ans.PB(7);ans.PB(5);ans.PB(15);ans.PB(12);ans.PB(12);ans.PB(6); } if(N==10) { ans.PB(4);ans.PB(15);ans.PB(0);ans.PB(3);ans.PB(2);ans.PB(12);ans.PB(9);ans.PB(13);ans.PB(14);ans.PB(13);ans.PB(2);ans.PB(13);ans.PB(4);ans.PB(4);ans.PB(2);ans.PB(2);ans.PB(0);ans.PB(12);ans.PB(12);ans.PB(15);ans.PB(4);ans.PB(15);ans.PB(12);ans.PB(2);ans.PB(6);ans.PB(12);ans.PB(3);ans.PB(6);ans.PB(4);ans.PB(11);ans.PB(7);ans.PB(15);ans.PB(3);ans.PB(13);ans.PB(12);ans.PB(14);ans.PB(15);ans.PB(15);ans.PB(0);ans.PB(12);ans.PB(3);ans.PB(12);ans.PB(3);ans.PB(11);ans.PB(3);ans.PB(0);ans.PB(13);ans.PB(15);ans.PB(15);ans.PB(4);ans.PB(13);ans.PB(8);ans.PB(6);ans.PB(15);ans.PB(9);ans.PB(2);ans.PB(0);ans.PB(1);ans.PB(3);ans.PB(15);ans.PB(3);ans.PB(13);ans.PB(13);ans.PB(3);ans.PB(10);ans.PB(3);ans.PB(3);ans.PB(2);ans.PB(0);ans.PB(2);ans.PB(14);ans.PB(9);ans.PB(13);ans.PB(12);ans.PB(5);ans.PB(0);ans.PB(1);ans.PB(0);ans.PB(8);ans.PB(11);ans.PB(14);ans.PB(8);ans.PB(15);ans.PB(8);ans.PB(15);ans.PB(12);ans.PB(3);ans.PB(14);ans.PB(4);ans.PB(13);ans.PB(14);ans.PB(8);ans.PB(7);ans.PB(14);ans.PB(0);ans.PB(14);ans.PB(12);ans.PB(7);ans.PB(3);ans.PB(8);ans.PB(2);ans.PB(15);ans.PB(0);ans.PB(1);ans.PB(2);ans.PB(0);ans.PB(0);ans.PB(3);ans.PB(2);ans.PB(9);ans.PB(0);ans.PB(0);ans.PB(12);ans.PB(2);ans.PB(2);ans.PB(11);ans.PB(7);ans.PB(8);ans.PB(15);ans.PB(0);ans.PB(0);ans.PB(2);ans.PB(11);ans.PB(0);ans.PB(2);ans.PB(12);ans.PB(2);ans.PB(1); } REP(i, ans.size()) cout<<ans[i]<<endl; } return 0; }
void print_r(VI v){ for(int i=0;i<v.size();i++){ cout<<v[i]<<", "; } }
VI Out( int u, int b ) { if (V[u].size() <= b) { if (V[u].size() == 0) return VI(1, u); else if (V[u].size() == 1) return Out(V[u][0], b); else { VI T1 = Out(V[u][0], 1), T2 = Out(V[u][1], 1); for (int i = 0; i < T2.size(); i++) T1.PB(T2[i]); return T1; } } int Ans = (V[u].size() - b + 1) / 2; for (int i = 0; i < V[u].size(); i++) Ans += dfs2(V[u][i], 1); if (((V[u].size() + b) & 1) == 0 || Ans == D[u][b]) { VI Res; int Curr = -1, Last = -1; for (int i = 0; i < V[u].size(); i++) { VI Temp = Out(V[u][i], 1); if (i == V[u].size() - 2) Last = Temp[0]; if (i < b) for (int k = 0; k < Temp.size(); k++) Res.PB(Temp[k]); else if (Curr == -1) Curr = Temp[0]; else Result.PB(MP(Curr, Temp[0])), Curr = -1; } if (Curr != -1 && Last != -1) Result.PB(MP(Curr, Last)); return Res; } else { int Ans = (V[u].size() - b + 1) / 2; for (int i = 0; i < V[u].size(); i++) Ans += dfs2(V[u][i], 1); for (int i = 0; i < V[u].size(); i++) if (Ans - dfs2(V[u][i], 1) + dfs2(V[u][i], 2) == D[u][b]) { VI Res; VI Temp = Out(V[u][i], 2); Res.PB(Temp[1]); int Curr = -1; for (int j = 0; j < V[u].size(); j++) { VI Temp = Out(V[u][j], 1); if (j < b - 1) Res.PB(Temp[0]); else if (Curr == -1) Curr = Temp[0]; else Result.PB(MP(Curr, Temp[0])), Curr = -1; } return Res; } } }
inline void pvi(VI a){FORSZ(i,a) printf("%d%c", a[i], i == a.size() - 1 ? '\n' : ' ');}