#include #include #include using namespace std; bool vis[1000][6]; bool check(vectorB) { for(const string&s:B)assert(s.size()==6); int t=B.size()*2; while(t--) { for(int i=0;isolve(int N) { vectorB; if(N==2)return B;//-1 if(N==1)B.push_back("001110"); else if(N==3) { B.push_back("312330"); B.push_back("042441"); B.push_back("015552"); } else if((N-3)%2==0) { B.push_back("411012"); B.push_back("323034"); B.push_back("427065"); B.push_back("785886"); B.push_back("965997"); while(B.size()=8) { assert(N>=8); B.push_back("411012"); B.push_back("323034"); B.push_back("427065"); B.push_back("785886"); B.push_back("965997"); while(B.size()>N; vectorB=solve(N); if(B.empty())cout<<-1<