// 2025 9/6 // 2025 9/6 #include using namespace std; #define int long long const int mod = 998244353; template void out(vector> v) { for (int i = 0; i < (int)v.size(); i++) for (int j = 0; j < (int)v.at(i).size(); j++) { cout << v.at(i).at(j) << " "; if (j == (int)v.at(i).size() - 1) cout << endl; } } template void out2(vector>> v) { cout << "-----------------" << endl; for (int i = 0; i < (int)v.size(); i++) { cout << "i:" << i << endl; for (int j = 0; j < (int)v.at(i).size(); j++) for (int k = 0; k < (int)v.at(i).at(j).size(); k++) { cout << v.at(i).at(j).at(k) << " "; if (k == (int)v.at(i).at(j).size() - 1) cout << endl; } cout << "-----------------" << endl; } } template void out3(vector>> v) { cout << "-----------------" << endl; for (int k = 0; k < (int)v.at(0).at(0).size(); k++) { cout << "k:" << k << endl; for (int i = 0; i < (int)v.size(); i++) { for (int j = 0; j < (int)v.at(i).size(); j++) { cout << v.at(i).at(j).at(k) << " "; if (j == v.at(i).size() - 1) cout << endl; } } cout << "-----------------" << endl; } } template bool chmax(T &a, T b) { if (a < b) { a = b; return true; } return false; } template bool chmin(T &a, T b) { if (a > b) { a = b; return true; } return false; } int power(int x, int n, int mod) { int ret = 1; while (n > 0) { if (n & 1) { ret *= x; if (mod > 0) ret %= mod; } x *= x; if (mod > 0) x %= mod; n >>= 1; } return ret; } signed main(void) { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector l(n); vector r(n); for (int i = 0; i < n; i++) cin >> l.at(i) >> r.at(i); vector v(n); for (int i = 0; i < n; i++) v.at(i) = i; int ans = 0; do { int tmp = 0; for (int i = 0; i < n; i++) { if (r.at(v.at(i)) < tmp) break; else chmax(tmp, l.at(v.at(i))); if (i == n - 1) ans++; } } while (next_permutation(v.begin(), v.end())); cout << ans << endl; }