#include <bits/stdc++.h>
using namespace std;
int conversion(string p) {
  int o;
  o = atoi(p.c_str());
  return o;
}
string toString(int h) {
  stringstream ss;
  ss << h;
  return ss.str();
}
long long gcd(long long a, long long b) { return (b == 0 ? a : gcd(b, a % b)); }
long long lcm(long long a, long long b) { return (a * (b / gcd(a, b))); }
long long toi(string p) {
  long long x;
  istringstream in(p);
  in >> x;
  return x;
}
int main() {
  int n, x, y, res = 0, a, b;
  bool go = true;
  while (cin >> n) {
    vector<pair<int, int> > M, N;
    vector<int> R;
    map<pair<int, int>, int> P;
    pair<int, int> p;
    for (int i = 0; i < n; i++) {
      cin >> x >> y;
      M.push_back(make_pair(x, y));
      P[M[i]] = i + 1;
    }
    sort(M.begin(), M.end());
    for (int i = 0; i < M.size(); i++) {
      p = M[i];
      M.erase(M.begin() + i);
      for (int j = 0; j < M.size() - 1; j++) {
        if (M[j].second > M[j + 1].first) go = false;
      }
      M.insert(M.begin() + i, p);
      if (go) R.push_back(P[M[i]]);
      go = true;
    }
    cout << R.size() << endl;
    sort(R.begin(), R.end());
    for (int i = 0; i < R.size(); i++) cout << R[i] << " ";
    cout << endl;
  }
}
