#include <bits/stdc++.h>
using namespace std;
#define int long long
#define all(x) x.begin(),x.end()
#define fileinp(name) freopen(name,"r",stdin)
#define fileout(name) freopen(name,"w",stdout)
#define loop(i, start, end, step) for (long long i = start; i <=end; i += step)
#define rloop(i,start,end,step) for(long long i = end; i>=start;i-=step)
#define fastio ios_base::sync_with_stdio(false);cout.tie(0);cin.tie(0)
#define ins push_back
template <typename T>
using v = vector<T>;
using cap = pair<long,long>;
v<v<int>> adj;
v<int> canh;
signed main(){
int n;
cin >> n;
adj.resize(n+1);
loop(i,1,n-1,1){
int a,b;
cin >> a >> b;
adj[a].ins(b);
adj[b].ins(a);
}
auto dfs = [&](auto&& self,int v,int parent) -> void{
if(adj[v].size() == 1)canh.ins(v);
for(int u : adj[v]){
if(u == parent)continue;
self(self,u,v);
}
};
dfs(dfs,1,1);
if(canh.size()&1)canh.ins(canh[0]);
cout << canh.size()/2 << "\n";
int r = canh.size()/2;
for(int i = 0;2*i < canh.size();i++)cout << canh[i] <<" " << canh[r++] << "\n";
}