#include using namespace std; #define rep(i,n) for (int i = 0; i< (n); ++i) #define repi(i, a, b) for (int i = (a); i < (b); ++i) #define all(x) (x).begin(), (x).end() #define fore(i, a) for(auto &i:a) using ll = long long; #define DEBUG(x) cerr << #x << ": "; for (auto _ : x) cerr << _ << " "; cerr << endl; int main() { int n;cin >> n; vector L(n), R(n), order(n); rep(i, n)cin >> L[i] >> R[i]; rep(i, n)order[i] = i; int ans = 0; do{ bool flag = true; rep(i, n-1){ if(L[order[i]] > R[order[i+1]])flag = false; } if(flag)ans++; }while(next_permutation(all(order))); cout << ans << endl; }