#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
struct participant {
  int x, k, pos;
} a[N];
bool cmp(participant a, participant b) {
  if (a.k == b.k)
    return a.x < b.x;
  else
    return a.k < b.k;
}
int main() {
  int n;
  while (scanf("%d", &n) == 1) {
    for (int i = 0; i < n; i++) {
      scanf("%d%d", &a[i].x, &a[i].k);
      a[i].pos = i;
    }
    sort(a, a + n, cmp);
    bool flag = true;
    for (int i = 0; i < n; i++) {
      if (i == 0) {
        if (a[i].x != 0) {
          flag = 0;
          printf("NO\n");
          break;
        }
      }
      if (a[i].k == a[i - 1].k) {
        if (a[i].x == a[i - 1].x + 1) {
          if (a[i].pos < a[i - 1].pos) {
            printf("NO\n");
            flag = 0;
            break;
          }
        } else if (a[i].x == a[i - 1].x) {
          a[i].pos = min(a[i].pos, a[i - 1].pos);
          a[i - 1].pos = min(a[i].pos, a[i - 1].pos);
        } else {
          printf("NO\n");
          flag = 0;
          break;
        }
      } else {
        if (a[i].x != 0) {
          flag = 0;
          printf("NO\n");
          break;
        }
      }
    }
    if (flag) puts("YES");
  }
  return 0;
}
