#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 A(N); iota(A.begin(), A.end(), 0); do { int tmp = L[A[0]]; bool ok = true; for (int i = 1; i < N; i++) { ok &= tmp <= R[A[i]]; tmp = max(tmp, L[A[i]]); } ans += ok; } while (next_permutation(A.begin(), A.end())); cout << ans << endl; return 0; }