#include <bits/stdc++.h>
using namespace std;
const int maxn = 5005;
struct node {
  int id;
  int l, r;
};
node a[maxn];
int b[maxn];
int n;
bool cmp(node x, node y) { return x.l < y.l; }
int main() {
  int i, j;
  while (scanf("%d", &n) != EOF) {
    memset(a, 0, sizeof(a));
    for (i = 1; i <= n; i++) {
      scanf("%d%d", &a[i].l, &a[i].r);
      a[i].id = i;
    }
    sort(a + 1, a + n + 1, cmp);
    bool flag = true;
    for (i = 2; i <= n; i++)
      if (a[i].l < a[i - 1].r) {
        flag = false;
        break;
      }
    if (flag) {
      printf("%d\n", n);
      for (i = 1; i < n; i++) printf("%d ", i);
      printf("%d\n", n);
      continue;
    }
    int ans = 0;
    for (i = 1; i <= n; i++) {
      flag = true;
      for (j = 1; j <= n; j++) {
        if (i != j && j != 1) {
          if (j == i + 1) {
            if (a[j].l < a[j - 2].r) {
              flag = false;
              break;
            }
          } else if (a[j].l < a[j - 1].r) {
            flag = false;
            break;
          }
        }
      }
      if (flag) {
        ans++;
        b[ans] = a[i].id;
      }
    }
    sort(b + 1, b + ans + 1);
    printf("%d\n", ans);
    if (ans == 0) continue;
    for (i = 1; i < ans; i++) printf("%d ", b[i]);
    printf("%d\n", b[ans]);
  }
  return 0;
}
