#include <bits/stdc++.h>   using namespace std;   const int mod = 998244353;   const int N = 1e5 + 5;   vector<int> g[N];   vector<pair<int, int> > ans;   int maxx;   void dfs(int x, int fa, int t) {     int siz = g[x].size();     int tmp = t;     ans.push_back(make_pair(x, t));     for (int i = 0; i <= siz - 1; i++) {       int v = g[x][i];       if (v == fa) continue;       if (t == maxx) t = maxx - siz, ans.push_back(make_pair(x, t));       dfs(v, x, ++t);       ans.push_back(make_pair(x, t));     }     if (t >= tmp && x - 1) ans.push_back(make_pair(x, tmp - 1));   }   int main() {     int n, x, y;     scanf( %d , &n);     for (int i = 1; i <= n - 1; i++) {       scanf( %d%d , &x, &y);       g[x].push_back(y);       g[y].push_back(x);     }     for (int i = 1; i <= n; i++) maxx = max(maxx, (int)g[i].size());     dfs(1, 1, 0);     int num = (int)ans.size();     printf( %d n , num);     for (int i = 0; i <= num - 1; i++) {       printf( %d %d n , ans[i].first, ans[i].second);     }     return 0;   }   