#include <bits/stdc++.h>
using namespace std;
const long double eps = 1e-9;
const long double pi = acos(-1.0);
const long long INF = (long long)(2e18);
const int inf = (int)(1e9 + 7);
vector<pair<int, int> > res;
vector<vector<int> > g;
int cnt = 1;
void dfs(int v, int p) {
  reverse((g[v]).begin(), (g[v]).end());
  for (auto& it : g[v]) {
    if (it == p) continue;
    res[it].first = cnt++;
  }
  res[v].second = cnt++;
  reverse((g[v]).begin(), (g[v]).end());
  for (auto& it : g[v]) {
    if (it == p) continue;
    dfs(it, v);
  }
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cout << fixed << setprecision(10);
  cin.tie(nullptr);
  int n;
  cin >> n;
  g.assign(n, vector<int>());
  res.assign(n, pair<int, int>());
  for (int i = 0; i < n - 1; ++i) {
    int f, t;
    cin >> f >> t;
    --f;
    --t;
    g[f].push_back(t);
    g[t].push_back(f);
  }
  res[0].first = cnt++;
  dfs(0, 0);
  for (auto& it : res) cout << it.first << " " << it.second << endl;
  return 0;
}
