#include #define fi first #define se second #define rep(i,s,n) for (int i = (s); i < (n); ++i) #define rrep(i,g,n) for (int i = (n)-1; i >= (g); --i) #define all(a) a.begin(),a.end() #define rall(a) a.rbegin(),a.rend() #define len(x) (int)(x).size() #define dup(x,y) (((x)+(y)-1)/(y)) #define pb push_back #define eb emplace_back #define Field(T) vector> using namespace std; using ll = long long; using ull = unsigned long long; template using pq = priority_queue,greater>; using P = pair; templatebool chmax(T&a,T b){if(abool chmin(T&a,T b){if(b> n; cout << n-2 << endl; vector u(n), v(n); vector> G(n); rep(i,0,n-1) { cin >> u[i] >> v[i]; --u[i], --v[i]; G[u[i]].eb(v[i]), G[v[i]].eb(u[i]); } vector a(n-2); rep(i,0,n-2) { rep(v,0,n) { if (len(G[v]) == 1) { a[i] = G[v][0]; G[a[i]].erase(find(all(G[a[i]]), v)); G[v].clear(); break; } } } rep(i,0,n-2) { cout << a[i]+1 << " "; } cout << endl; } void bob() { int n; cin >> n; cout << n-2 << endl; vector a(n-2); rep(i,0,n-2) cin >> a[i], --a[i]; vector d(n, 1); rep(i,0,n-2) ++d[a[i]]; rep(i,0,n-2) { rep(j,0,n) { if (d[j] == 1) { cout << a[i]+1 << " " << j+1 << endl; --d[a[i]], --d[j]; break; } } } int u = -1, v = -1; rep(i,0,n) { if (d[i] == 1) { if (u == -1) u = i; else v = i; } } cout << u+1 << " " << v+1 << endl; } int main() { string s; cin >> s; if (s[0] == 'A') alice(); else bob(); return 0; }