#include <bits/stdc++.h>
using namespace std;
vector<int> adj[500005];
vector<pair<int, int> > ans(500005);
int i = 1;
void dfs(int cur, int bap) {
  auto it = adj[cur].end();
  it--;
  while (true) {
    if (it == adj[cur].begin()) {
      if (*it != bap) {
        ans[*it].first = i++;
      }
      break;
    }
    if (*it != bap) {
      ans[*it].first = i++;
    }
    it--;
  }
  ans[cur].second = i++;
  for (auto u : adj[cur]) {
    if (u != bap) {
      dfs(u, cur);
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  if (n == 1) {
    cout << "1 2\n";
    return 0;
  }
  for (int i = 0; i < n - 1; i++) {
    int p, q;
    cin >> p >> q;
    adj[p].push_back(q);
    adj[q].push_back(p);
  }
  ans[1].first = i++;
  dfs(1, -1);
  for (int i = 1; i <= n; i++) {
    cout << ans[i].first << " " << ans[i].second << "\n";
  }
}
