#include #include #include #include using namespace std; int n; bool flag ; vector reverse(vector v, int d) { vector r; for(int i=d-1;i>=0;i--) r.push_back(v[i]); for(int i=d;i0) { int t=d % 10; d=(d-t)/10; char tt=t+48; result=tt+result; } return result; } void myfind(vector o1, vector o2, string path , vector< vector< int > > seznam) { if(flag) return; if(o1==o2) { path=path.substr(1,path.size()-1); flag=true; cout< newo=reverse(o1,i); if( find(seznam.begin(), seznam.end(), newo) != seznam.end() ) { continue; } seznam.push_back(newo); myfind(newo, o2, path+" "+fromInt(i), seznam); seznam.pop_back(); } } int main() { while(1) { cin>>n; if(n==0) break; vector o1; vector o2; for(int i=0;i>temp; o1.push_back(temp); } for(int i=0;i>temp; o2.push_back(temp); } //////////////////////////// flag=false; vector< vector< int > > s; s.push_back(o1); myfind(o1 , o2, "" , s); } }