#if __has_include() #include using namespace atcoder; #else #include #if __has_include() #include using namespace atcoder; #endif #endif using namespace std; #define int long long #define all(x) (x).begin(), (x).end() #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rrep(i, n) for(int i = (int)((n) - 1); i >= 0; i--) template bool chmax(T &a,const T &b){if(a bool chmin(T &a,const T &b){if(a>b){a=b;return true;}return false;} // using mint = modint; signed main(){ int n; cin >> n; vector> lr(n); for(auto&& [l, r] : lr) cin >> l >> r; vector per(n); rep(i, n) per.at(i) = i; int ans = 0; do{ bool ok = true; int before = -1; rep(i, n){ auto [l, r] = lr.at(per.at(i)); ok &= r >= before; before = max(l, before); } ans += ok; }while(next_permutation(all(per))); cout << ans << '\n'; }