import
java.io.*;
class
GFG {
static
final
int
MOD = (
int
)1e9 +
7
;
static
int
gcd(
int
a,
int
b)
{
if
(a ==
0
)
return
b;
return
gcd(b % a, a);
}
static
int
power(
int
x,
int
y,
int
M)
{
if
(y ==
0
)
return
1
;
int
p = power(x, y /
2
, M) % M;
p = (
int
)((
long
)p * p % M);
return
(y %
2
==
0
) ? p : (
int
)((
long
)x * p % M);
}
static
int
modInverse(
int
A,
int
M)
{
int
g = gcd(A, M);
return
power(A, M -
2
, M);
}
static
int
countWays(
int
A,
int
B,
int
C,
int
D)
{
int
[] fact =
new
int
[
100001
];
fact[
1
] =
1
;
fact[
0
] =
1
;
for
(
int
i =
2
; i <=
100000
; i++) {
fact[i] = (
int
)((
long
)fact[i -
1
] * i % MOD);
}
int
ans1
= (
int
)((
long
)fact[A]
* modInverse(fact[A -
2
], MOD) % MOD);
ans1 = (
int
)((
long
)ans1 * fact[B] % MOD
* modInverse(fact[B -
1
], MOD) % MOD);
ans1 = (
int
)((
long
)ans1 * fact[C] % MOD
* modInverse(fact[C -
1
], MOD) % MOD);
ans1 = (
int
)((
long
)ans1 * fact[D] % MOD
* modInverse(fact[D -
2
], MOD) % MOD);
ans1 = (
int
)((
long
)ans1 * modInverse(
4
, MOD) % MOD);
int
ans2
= (
int
)((
long
)fact[A]
* modInverse(fact[A -
3
], MOD) % MOD);
ans2 = (
int
)((
long
)ans2 * fact[D] % MOD
* modInverse(fact[D -
3
], MOD) % MOD);
ans2
= (
int
)((
long
)ans2 * modInverse(
36
, MOD) % MOD);
int
ans3
= (
int
)((
long
)fact[B]
* modInverse(fact[B -
3
], MOD) % MOD);
ans3 = (
int
)((
long
)ans3 * fact[C] % MOD
* modInverse(fact[C -
3
], MOD) % MOD);
ans3
= (
int
)((
long
)ans3 * modInverse(
36
, MOD) % MOD);
int
ans4
= (
int
)((
long
)fact[A]
* modInverse(fact[A -
1
], MOD) % MOD);
ans4 = (
int
)((
long
)ans4 * fact[B] % MOD
* modInverse(fact[B -
2
], MOD) % MOD);
ans4 = (
int
)((
long
)ans4 * fact[C] % MOD
* modInverse(fact[C -
2
], MOD) % MOD);
ans4 = (
int
)((
long
)ans4 * fact[D] % MOD
* modInverse(fact[D -
1
], MOD) % MOD);
ans4 = (
int
)((
long
)ans4 * modInverse(
4
, MOD) % MOD);
return
(ans1 + ans2 + ans3 + ans4) % MOD;
}
public
static
void
main(String[] args)
{
int
A =
4
, B =
3
, C =
3
, D =
4
;
System.out.println(countWays(A, B, C, D));
int
A1 =
3
, B1 =
3
, C1 =
3
, D1 =
3
;
System.out.println(countWays(A1, B1, C1, D1));
}
}