output_description: Print the number of ways to minimize the total length of the cables, modulo
  10^9+7.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N
      a_1
      :
      a_N
      b_1
      :
      b_N
attempt: p=1
  s=[0]*2
  n=int(input())
  q=sorted([[int(input()),i//n]for i in range(2*n)])
  for i in q:
      if s[1-i[1]]==0:
          s[i[1]]+=1
      else:
          p*=s[1-i[1]]
          s[1-[i[1]]-=1
  print(p%(10**9+7))
problem_description: Statement
  
  There are N computers and N sockets in a one-dimensional world. The coordinate
  of the i-th computer is a_i, and the coordinate of the i-th socket is b_i. It
  is guaranteed that these 2N coordinates are pairwise distinct.
  
  Snuke wants to connect each computer to a socket using a cable. Each socket
  can be connected to only one computer.
  
  In how many ways can he minimize the total length of the cables? Compute the
  answer modulo 10^9+7.
samples: [{"input": "2\n    0\n    10\n    20\n    30", "output": "2\n    \n\nThere are two optimal connections: 0-20, 10-30 and 0-30, 10-20. In both\nconnections the total length of the cables is 40.\n\n* * *"}, {"input": "3\n    3\n    10\n    8\n    7\n    12\n    5", "output": "1"}]