Problem:
Score : 400 points

Problem Statement

There is a knight - the chess piece - at the origin (0, 0) of a two-dimensional grid.

When the knight is at the square (i, j), it can be moved to either (i+1,j+2) or (i+2, j+1).

In how many ways can the knight reach the square (X, Y)?

Find the number of ways modulo 10^9 + 7.

Constraints

1 \leq X \leq 10^6

1 \leq Y \leq 10^6

All values in input are integers.

Input

Input is given from Standard Input in the following format:

X Y

Output

Print the number of ways for the knight to reach (X, Y) from (0, 0), modulo 10^9 + 7.

Sample Input 1

3 3

Sample Output 1

2

There are two ways: (0,0) \to (1,2) \to (3,3) and (0,0) \to (2,1) \to (3,3).

Sample Input 2

2 2

Sample Output 2

0

The knight cannot reach (2,2).

Sample Input 3

999999 999999

Sample Output 3

151840682

Print the number of ways modulo 10^9 + 7.

Solution in PHP7 (7.0.15) (judge verdict: Wrong Answer)

<?php
fscanf(STDIN, "%d %d", $X, $Y);

if (2 * $X - $Y % 3 != 0 or 2 * $Y - $X % 3 != 0) {
    echo 0;
    die();
}


$a = intdiv(2 * $X - $Y, 3);
$b = intdiv(2 * $Y - $X, 3);

$P = 10**9 + 7;
$N = 10000;
$finv_t = [1, 1];
$fac = [1, 1];
$inv[1] = 1;

for ($i=2; $i<$a+$b+1; $i++) {
    $fac[] = $fac[$i-1] * $i % $P;
    $inv[] = $P - $inv[$P%$i] * intdiv($P, $i) % $P;
    $finv_t[] = $finv_t[$i-1] * $inv[$i] % $P;
}


$ans = $fac[$a+$b] * ($finv_t[$a] * $finv_t[$b] % $P) % $P;
echo $ans;