N = gets.to_i LR = Array.new(N) { gets.split.map(&:to_i) } cnt = 0 LR.permutation(N).each do |perm| ok = true min = 0 (N - 1).times do |i| l1, r1 = perm[i] l2, r2 = perm[i + 1] if r2 < min ok = false break end unless l1 <= r2 && l2 <= r1 || r1 <= l2 ok = false break end min = [min, l1, l2].max end next unless ok cnt += 1 end puts cnt