#include <bits/stdc++.h>
using namespace std;
long long int mul(long long int x, long long int y) {
  long long int ans = 1;
  while (y > 0) {
    if (y & 1) ans = (ans * x) % 1000000007;
    y /= 2;
    x = (x * x) % 1000000007;
  }
  return ans;
};
vector<vector<long long int> > v(500005);
vector<vector<long long int> > vv(500005);
vector<long long int> fin;
void go(long long int x, long long int p) {
  long long int size = v[x].size(), i;
  for (i = 0; i < size; i++)
    if (v[x][i] != p) go(v[x][i], x);
  fin.push_back(x);
  for (i = size - 1; i >= 0; i--)
    if (v[x][i] != p) fin.push_back(v[x][i]);
  return;
}
int main() {
  long long int n, i, x, y;
  scanf("%lld", &n);
  for (i = 1; i < n; i++) {
    scanf("%lld", &x);
    scanf("%lld", &y);
    v[x].push_back(y);
    v[y].push_back(x);
  }
  fin.push_back(1);
  go(1, 0);
  for (i = 0; i < 2 * n; i++) vv[fin[i] - 1].push_back(i + 1);
  for (i = 0; i < n; i++) cout << vv[i][0] << " " << vv[i][1] << "\n";
  return 0;
}
