output_description: Print the sum of f(i, j) modulo (10^9+7).
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      r_1 c_1 r_2 c_2
attempt: import math
  
  r_1, c_1, r_2, c_2 = input().split()
  r_1 = int(r_1)
  r_2 = int(r_2)
  c_1 = int(c_1)
  c_2 = int(c_2)
  
  count = 0
  
  
  def total(r, c):
      return math.factorial(r + c) / (math.factorial(r) * math.factorial(c))
  
  
  count += total(r_1, c_1)
  count += total(r_1, c_2)
  count += total(r_2, c_1)
  count += total(r_2, c_2)
  
  if count < (pow(10, 9) + 7):
      print(int(count))
  else:
      print(int(count % (pow(10, 9) + 7)))
  
problem_description: Statement
  
  Snuke is standing on a two-dimensional plane. In one operation, he can move by
  1 in the positive x-direction, or move by 1 in the positive y-direction.
  
  Let us define a function f(r, c) as follows:
  
    * f(r,c) :=  (The number of paths from the point (0, 0) to the point (r, c) that Snuke can trace by repeating the operation above)
  
  Given are integers r_1, r_2, c_1, and c_2. Find the sum of f(i, j) over all
  pair of integers (i, j) such that r_1 ≤ i ≤ r_2 and c_1 ≤ j ≤ c_2, and compute
  this value modulo (10^9+7).
samples: [{"input": "1 1 2 2", "output": "14\n    \n\nFor example, there are two paths from the point (0, 0) to the point (1, 1):\n(0,0) \u2192 (0,1) \u2192 (1,1) and (0,0) \u2192 (1,0) \u2192 (1,1), so f(1,1)=2.\n\nSimilarly, f(1,2)=3, f(2,1)=3, and f(2,2)=6. Thus, the sum is 14.\n\n* * *"}, {"input": "314 159 2653 589", "output": "602215194"}]