#include using namespace std; int main() { int N; cin >> N; vector L(N), R(N); for (int i = 0; i < N; ++i) cin >> L[i] >> R[i]; int ans = 0; vector p(N); iota(p.begin(), p.end(), 0); do { int point = 0; bool check = true; for (int i = 0; i < N; ++i) { if (R[p[i]] < point) check = false; point = max(point, L[p[i]]); } if (check) ans++; } while (next_permutation(p.begin(), p.end())); cout << ans << endl; return 0; }