#include #define rep(i, n) for(int i = 0; i < (int)(n); i++) #define all(obj) (obj).begin(), (obj).end() using ll = long long; using namespace std; int main() { int N;cin>>N; vector L(N),R(N); rep(i,N) cin >> L[i]>>R[i]; int ans = 0; vector p(N); rep(i,N) p[i] = i; do{ vector l = L; vector r = R; bool flag = true; for(int i = 0; i < N-1; i++){ int c = p[i]; int n = p[i+1]; if(l[c] > r[n]){ flag = false; break; }else if(l[c] > l[n]){ l[n] = l[c]; }else{ ; } } if( flag ){ ans++; } }while(next_permutation(all(p))); cout << ans << endl; }