let rec power ( * ) e m n =
  if n <= 0 then e
  else power ( * ) (if n land 1 = 0 then e else m * e) (m * m) (n lsr 1)

let m = 1000000007
let ( *^ ) x y = (x * y) mod m

let perm n k = Array.fold_left ( *^ ) 1 @@ Array.init k @@ ( + ) @@ n - k + 1
let comb n k = power ( *^ ) (perm n k) (perm k k) (m - 2)

let () = Scanf.scanf "%d %d\n" @@ fun x y ->
  Printf.printf "%d\n" @@ if
    2 * x - y < 0 ||
    0 < (2 * x - y) mod 3 ||
    2 * y - x < 0 ||
    0 < (2 * y - x) mod 3
  then 0
  else comb ((x + y) / 3) ((2 * x - y) / 3)
