#include using namespace std; #define rep(i,n) for(int i = 0; i < int(n); i++) #define FOR(i,a,b) for(ll i = a; i < (ll)(b); i++) #define all(a) (a).begin(),(a).end() using ll = long long; using VI = vector; using P = pair; const long long INF = 1LL << 60; const int DX[] = {1,0,-1,0}; const int DY[] = {0,1,0,-1}; int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); ll n; cin >> n; vector l(n),r(n); rep(i,n) cin >> l[i] >> r[i]; vector a(n); iota(all(a),0); ll ans = 0; do{ vector b(n); b[0] = l[a[0]]; ans++; for(int i = 1; i < n; i++){ if(b[i-1] > r[a[i]]) {ans--; break;} b[i] = max(l[a[i]],b[i-1]); } }while(next_permutation(all(a))); cout << ans << endl; return 0; }