#include #include #include #include #include #include #include #include #include using namespace std; #define int long long #define endl "\n" constexpr long long INF = (long long)1e18; constexpr long long MOD = 1'000'000'007; // struct fast_io { // fast_io(){ // std::cin.tie(nullptr); // std::ios::sync_with_stdio(false); // }; // } fio; #define a first.first #define b first.second #define c second.first #define z second.second int A, B, C, D, E, F; vector> ans; void dijkstra(){ // priority_queue,pair>>,vector,pair>>>,greater,pair>>>> q; // priority_queue,pair>>,vector,pair>>>,greater,pair>>>>> q; // priority_queue,pair>>>,vector,pair>>>,greater,pair>>>> q; // priority_queue,pair>>>,vector,pair>>>>,greater,pair>>>>> q; priority_queue,pair>>,vector,pair>>>,greater,pair>>>> q; map,pair>,int> d; map,pair>,pair,pair,pair>>> d2; d[{{A,B},{C,0}}] = 1; d2[{{A,B},{C,0}}] = {{-1,-1},{{-1,-1},{-1,-1}}}; q.push({1, {{A,B},{C,0}}}); // cout<<"test"<,pair>> p = q.top();q.pop(); pair,pair> v = p.second; // cout<<"A "< max({D,E,F})) break; if(v.a == E && v.b == F && v.c || v.a == E && v.c == F && v.b || v.b == E && v.a == F && v.c || v.b == E && v.c == F && v.a || v.c == E && v.a == F && v.b || v.c == E && v.b == F && v.a) { // cout<<"[]"<,pair> V = p.second; if(V.a == D && V.b == E && V.c == F) { if(ans.size() && (int)ans.size() + 1 < d[V] - 1) return ; if(d[V] == 1) { ans.clear(); ans.push_back({2,'X'}); //return ; } else { // for(;V.a != -1;){ // ans.push_back({1, 'A' + d2[V].first.first}); // V = d2[V].second; // } ans.clear(); for(;;){ // cout<<"V A "<>str; } return ; } } else { ans.clear(); for(;;){ // cout<<"V A "<>str; } ans.push_back({2,'X'}); } // return ; } // cout<<"<><>"<,pair> n; n = v; n.a *= 2; n.b *= 2; if(d.count(n) == 0 || d[n] < d[v] + 2) { d[n] = d[v] + 2; d2[n] = {{1,2}, v}; q.push({d[n], n}); } } { pair,pair> n; n = v; n.a *= 2; n.c *= 2; if(d.count(n) == 0 || d[n] < d[v] + 2) { d[n] = d[v] + 2; d2[n] = {{1,1}, v}; q.push({d[n], n}); } } { pair,pair> n; n = v; n.b *= 2; n.c *= 2; if(d.count(n) == 0 || d[n] < d[v] + 2) { d[n] = d[v] + 2; d2[n] = {{1,0}, v}; q.push({d[n], n}); } } } } signed main(){ cout<>A>>B>>C>>D>>E>>F; dijkstra(); if(ans.size() == 0) cout<<"No"<= 0; i--) { if(ans[i].first == 1) { cout<<1<<" "<