#include <bits/stdc++.h>
using namespace std;
int zu;
int n;
struct edge {
  int id;
  int l, r;
} a[100005];
bool cmp(edge x, edge y) {
  if (x.l == y.l) return x.id < y.id;
  return x.l < y.l;
}
int main() {
  cin >> zu;
  while (zu--) {
    cin >> n;
    for (int i = 0; i < n; i++) {
      int l, r;
      cin >> a[i].l >> a[i].r;
      a[i].id = i;
    }
    sort(a, a + n, cmp);
    printf("%d ", a[0].l);
    int cnt = 1;
    int ed = a[0].l + 1;
    for (int i = 1; i < n; i++) {
      if (a[i].l >= ed) {
        printf("%d ", a[i].l);
        ed = a[i].l + 1;
      } else if (a[i].r >= ed && a[i].l < ed) {
        printf("%d ", ed);
        ed++;
      } else if (a[i].r < ed) {
        printf("0 ");
      }
    }
    cout << "\n";
  }
}
