#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) int main() { int N; cin >> N; vector> LR(N); rep(i, N) { cin >> LR[i][0] >> LR[i][1]; } vector order(N); iota(order.begin(), order.end(), 0); int ans = 0; do { int now = -1; bool ok = true; for (auto i : order) { auto [L, R] = LR[i]; if (R < now) { ok = false; break; } now = max(now, L); } ans += ok; } while (next_permutation(order.begin(), order.end())); cout << ans << endl; return 0; }