#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==1)B.push_back("001110"); else if(N==2)return B;//-1 else if(N==4) { B.push_back("545056"); B.push_back("634017"); B.push_back("634017"); B.push_back("722123"); } else { B.push_back("215550"); B.push_back("240441"); B.push_back("910992"); int n=(N-3)%2==0?N:N-3; while(B.size()+2<=n) { if(B.back()=="965997") { B.pop_back(); B.push_back("265107"); B.push_back("230331"); B.push_back("910992"); } else if(B.back()=="910992") { B.pop_back(); B.push_back("710652"); B.push_back("785886"); B.push_back("965997"); } else assert(false); } if(B.size()>N; vectorB=solve(N); if(B.empty())cout<<-1<