from functools import reduce

# 入力
N, M, K = map(int, input().split())

MOD = 10**9 + 7


class ModInt:
    def __init__(self, x):
        self.x = x % MOD

    def __str__(self):
        return str(self.x)

    __repr__ = __str__

    def __add__(self, other):
        return (
            ModInt(self.x + other.x) if isinstance(other, ModInt) else
            ModInt(self.x + other)
        )

    def __sub__(self, other):
        return (
            ModInt(self.x - other.x) if isinstance(other, ModInt) else
            ModInt(self.x - other)
        )

    def __mul__(self, other):
        return (
            ModInt(self.x * other.x) if isinstance(other, ModInt) else
            ModInt(self.x * other)
        )

    def __truediv__(self, other):
        return (
            ModInt(
                self.x * pow(other.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(self.x * pow(other, MOD - 2, MOD))
        )

    def __pow__(self, other):
        return (
            ModInt(pow(self.x, other.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(self.x, other, MOD))
        )

    __radd__ = __add__

    def __rsub__(self, other):
        return (
            ModInt(other.x - self.x) if isinstance(other, ModInt) else
            ModInt(other - self.x)
        )

    __rmul__ = __mul__

    def __rtruediv__(self, other):
        return (
            ModInt(
                other.x * pow(self.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(other * pow(self.x, MOD - 2, MOD))
        )

    def __rpow__(self, other):
        return (
            ModInt(pow(other.x, self.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(other, self.x, MOD))
        )


ans = (N * M * (M * (N**2 - 1) + N * (M**2 - 1)) // 6) * reduce(
    lambda acc, i: acc * (N * M - 2 - i) / (K - 2 - i),
    range(K - 2),
    ModInt(1)
)
print(ans) from functools import reduce N, M, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split M K MOD = 10**9 + 7 MOD 10**9 + 7 10**9 10 9 7 class ModInt:
    def __init__(self, x):
        self.x = x % MOD

    def __str__(self):
        return str(self.x)

    __repr__ = __str__

    def __add__(self, other):
        return (
            ModInt(self.x + other.x) if isinstance(other, ModInt) else
            ModInt(self.x + other)
        )

    def __sub__(self, other):
        return (
            ModInt(self.x - other.x) if isinstance(other, ModInt) else
            ModInt(self.x - other)
        )

    def __mul__(self, other):
        return (
            ModInt(self.x * other.x) if isinstance(other, ModInt) else
            ModInt(self.x * other)
        )

    def __truediv__(self, other):
        return (
            ModInt(
                self.x * pow(other.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(self.x * pow(other, MOD - 2, MOD))
        )

    def __pow__(self, other):
        return (
            ModInt(pow(self.x, other.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(self.x, other, MOD))
        )

    __radd__ = __add__

    def __rsub__(self, other):
        return (
            ModInt(other.x - self.x) if isinstance(other, ModInt) else
            ModInt(other - self.x)
        )

    __rmul__ = __mul__

    def __rtruediv__(self, other):
        return (
            ModInt(
                other.x * pow(self.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(other * pow(self.x, MOD - 2, MOD))
        )

    def __rpow__(self, other):
        return (
            ModInt(pow(other.x, self.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(other, self.x, MOD))
        ) ModInt def __init__(self, x):
        self.x = x % MOD

     __init__ self.x = x % MOD self.x self x x % MOD x MOD self self x x def __str__(self):
        return str(self.x)

     __str__ return str(self.x) str(self.x) str self.x self x self self __repr__ = __str__ __repr__ __str__ def __add__(self, other):
        return (
            ModInt(self.x + other.x) if isinstance(other, ModInt) else
            ModInt(self.x + other)
        )

     __add__ return (
            ModInt(self.x + other.x) if isinstance(other, ModInt) else
            ModInt(self.x + other)
        ) ModInt(self.x + other.x) if isinstance(other, ModInt) else
            ModInt(self.x + other) isinstance(other, ModInt) isinstance other ModInt ModInt(self.x + other.x) ModInt self.x + other.x self.x self x other.x other x ModInt(self.x + other) ModInt self.x + other self.x self x other self self other other def __sub__(self, other):
        return (
            ModInt(self.x - other.x) if isinstance(other, ModInt) else
            ModInt(self.x - other)
        )

     __sub__ return (
            ModInt(self.x - other.x) if isinstance(other, ModInt) else
            ModInt(self.x - other)
        ) ModInt(self.x - other.x) if isinstance(other, ModInt) else
            ModInt(self.x - other) isinstance(other, ModInt) isinstance other ModInt ModInt(self.x - other.x) ModInt self.x - other.x self.x self x other.x other x ModInt(self.x - other) ModInt self.x - other self.x self x other self self other other def __mul__(self, other):
        return (
            ModInt(self.x * other.x) if isinstance(other, ModInt) else
            ModInt(self.x * other)
        )

     __mul__ return (
            ModInt(self.x * other.x) if isinstance(other, ModInt) else
            ModInt(self.x * other)
        ) ModInt(self.x * other.x) if isinstance(other, ModInt) else
            ModInt(self.x * other) isinstance(other, ModInt) isinstance other ModInt ModInt(self.x * other.x) ModInt self.x * other.x self.x self x other.x other x ModInt(self.x * other) ModInt self.x * other self.x self x other self self other other def __truediv__(self, other):
        return (
            ModInt(
                self.x * pow(other.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(self.x * pow(other, MOD - 2, MOD))
        )

     __truediv__ return (
            ModInt(
                self.x * pow(other.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(self.x * pow(other, MOD - 2, MOD))
        ) ModInt(
                self.x * pow(other.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(self.x * pow(other, MOD - 2, MOD)) isinstance(other, ModInt) isinstance other ModInt ModInt(
                self.x * pow(other.x, MOD - 2, MOD)
            ) ModInt self.x * pow(other.x, MOD - 2, MOD) self.x self x pow(other.x, MOD - 2, MOD) pow other.x other x MOD - 2 MOD 2 MOD ModInt(self.x * pow(other, MOD - 2, MOD)) ModInt self.x * pow(other, MOD - 2, MOD) self.x self x pow(other, MOD - 2, MOD) pow other MOD - 2 MOD 2 MOD self self other other def __pow__(self, other):
        return (
            ModInt(pow(self.x, other.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(self.x, other, MOD))
        )

     __pow__ return (
            ModInt(pow(self.x, other.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(self.x, other, MOD))
        ) ModInt(pow(self.x, other.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(self.x, other, MOD)) isinstance(other, ModInt) isinstance other ModInt ModInt(pow(self.x, other.x, MOD)) ModInt pow(self.x, other.x, MOD) pow self.x self x other.x other x MOD ModInt(pow(self.x, other, MOD)) ModInt pow(self.x, other, MOD) pow self.x self x other MOD self self other other __radd__ = __add__ __radd__ __add__ def __rsub__(self, other):
        return (
            ModInt(other.x - self.x) if isinstance(other, ModInt) else
            ModInt(other - self.x)
        )

     __rsub__ return (
            ModInt(other.x - self.x) if isinstance(other, ModInt) else
            ModInt(other - self.x)
        ) ModInt(other.x - self.x) if isinstance(other, ModInt) else
            ModInt(other - self.x) isinstance(other, ModInt) isinstance other ModInt ModInt(other.x - self.x) ModInt other.x - self.x other.x other x self.x self x ModInt(other - self.x) ModInt other - self.x other self.x self x self self other other __rmul__ = __mul__ __rmul__ __mul__ def __rtruediv__(self, other):
        return (
            ModInt(
                other.x * pow(self.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(other * pow(self.x, MOD - 2, MOD))
        )

     __rtruediv__ return (
            ModInt(
                other.x * pow(self.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(other * pow(self.x, MOD - 2, MOD))
        ) ModInt(
                other.x * pow(self.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(other * pow(self.x, MOD - 2, MOD)) isinstance(other, ModInt) isinstance other ModInt ModInt(
                other.x * pow(self.x, MOD - 2, MOD)
            ) ModInt other.x * pow(self.x, MOD - 2, MOD) other.x other x pow(self.x, MOD - 2, MOD) pow self.x self x MOD - 2 MOD 2 MOD ModInt(other * pow(self.x, MOD - 2, MOD)) ModInt other * pow(self.x, MOD - 2, MOD) other pow(self.x, MOD - 2, MOD) pow self.x self x MOD - 2 MOD 2 MOD self self other other def __rpow__(self, other):
        return (
            ModInt(pow(other.x, self.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(other, self.x, MOD))
        ) __rpow__ return (
            ModInt(pow(other.x, self.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(other, self.x, MOD))
        ) ModInt(pow(other.x, self.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(other, self.x, MOD)) isinstance(other, ModInt) isinstance other ModInt ModInt(pow(other.x, self.x, MOD)) ModInt pow(other.x, self.x, MOD) pow other.x other x self.x self x MOD ModInt(pow(other, self.x, MOD)) ModInt pow(other, self.x, MOD) pow other self.x self x MOD self self other other ans = (N * M * (M * (N**2 - 1) + N * (M**2 - 1)) // 6) * reduce(
    lambda acc, i: acc * (N * M - 2 - i) / (K - 2 - i),
    range(K - 2),
    ModInt(1)
) ans (N * M * (M * (N**2 - 1) + N * (M**2 - 1)) // 6) * reduce(
    lambda acc, i: acc * (N * M - 2 - i) / (K - 2 - i),
    range(K - 2),
    ModInt(1)
) N * M * (M * (N**2 - 1) + N * (M**2 - 1)) // 6 N * M * (M * (N**2 - 1) + N * (M**2 - 1)) N * M N M M * (N**2 - 1) + N * (M**2 - 1) M * (N**2 - 1) M N**2 - 1 N**2 N 2 1 N * (M**2 - 1) N M**2 - 1 M**2 M 2 1 6 reduce(
    lambda acc, i: acc * (N * M - 2 - i) / (K - 2 - i),
    range(K - 2),
    ModInt(1)
) reduce lambda acc, i: acc * (N * M - 2 - i) / (K - 2 - i) acc * (N * M - 2 - i) / (K - 2 - i) acc * (N * M - 2 - i) acc N * M - 2 - i N * M - 2 N * M N M 2 i K - 2 - i K - 2 K 2 i acc i range(K - 2) range K - 2 K 2 ModInt(1) ModInt 1 print(ans) print ans ans = (N * M * (M * (N**2 - 1) + N * (M**2 - 1)) // 6) * reduce(
    lambda acc, i: acc * (N * M - 2 - i) / (K - 2 - i),
    range(K - 2),
    ModInt(1)
) (N * M * (M * (N**2 - 1) + N * (M**2 - 1)) // 6) * reduce(
    lambda acc, i: acc * (N * M - 2 - i) / (K - 2 - i),
    range(K - 2),
    ModInt(1)
) ans MOD = 10**9 + 7 10**9 + 7 MOD M, K = map(int, input().split()) map(int, input().split()) M K = map(int, input().split()) map(int, input().split()) K N, M, K = map(int, input().split()) map(int, input().split()) N class ModInt:
    def __init__(self, x):
        self.x = x % MOD

    def __str__(self):
        return str(self.x)

    __repr__ = __str__

    def __add__(self, other):
        return (
            ModInt(self.x + other.x) if isinstance(other, ModInt) else
            ModInt(self.x + other)
        )

    def __sub__(self, other):
        return (
            ModInt(self.x - other.x) if isinstance(other, ModInt) else
            ModInt(self.x - other)
        )

    def __mul__(self, other):
        return (
            ModInt(self.x * other.x) if isinstance(other, ModInt) else
            ModInt(self.x * other)
        )

    def __truediv__(self, other):
        return (
            ModInt(
                self.x * pow(other.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(self.x * pow(other, MOD - 2, MOD))
        )

    def __pow__(self, other):
        return (
            ModInt(pow(self.x, other.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(self.x, other, MOD))
        )

    __radd__ = __add__

    def __rsub__(self, other):
        return (
            ModInt(other.x - self.x) if isinstance(other, ModInt) else
            ModInt(other - self.x)
        )

    __rmul__ = __mul__

    def __rtruediv__(self, other):
        return (
            ModInt(
                other.x * pow(self.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(other * pow(self.x, MOD - 2, MOD))
        )

    def __rpow__(self, other):
        return (
            ModInt(pow(other.x, self.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(other, self.x, MOD))
        ) class ModInt:
    def __init__(self, x):
        self.x = x % MOD

    def __str__(self):
        return str(self.x)

    __repr__ = __str__

    def __add__(self, other):
        return (
            ModInt(self.x + other.x) if isinstance(other, ModInt) else
            ModInt(self.x + other)
        )

    def __sub__(self, other):
        return (
            ModInt(self.x - other.x) if isinstance(other, ModInt) else
            ModInt(self.x - other)
        )

    def __mul__(self, other):
        return (
            ModInt(self.x * other.x) if isinstance(other, ModInt) else
            ModInt(self.x * other)
        )

    def __truediv__(self, other):
        return (
            ModInt(
                self.x * pow(other.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(self.x * pow(other, MOD - 2, MOD))
        )

    def __pow__(self, other):
        return (
            ModInt(pow(self.x, other.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(self.x, other, MOD))
        )

    __radd__ = __add__

    def __rsub__(self, other):
        return (
            ModInt(other.x - self.x) if isinstance(other, ModInt) else
            ModInt(other - self.x)
        )

    __rmul__ = __mul__

    def __rtruediv__(self, other):
        return (
            ModInt(
                other.x * pow(self.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(other * pow(self.x, MOD - 2, MOD))
        )

    def __rpow__(self, other):
        return (
            ModInt(pow(other.x, self.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(other, self.x, MOD))
        ) ModInt
from functools import reduce

# 入力
N, M, K = map(int, input().split())

MOD = 10**9 + 7


class ModInt:
    def __init__(self, x):
        self.x = x % MOD

    def __str__(self):
        return str(self.x)

    __repr__ = __str__

    def __add__(self, other):
        return (
            ModInt(self.x + other.x) if isinstance(other, ModInt) else
            ModInt(self.x + other)
        )

    def __sub__(self, other):
        return (
            ModInt(self.x - other.x) if isinstance(other, ModInt) else
            ModInt(self.x - other)
        )

    def __mul__(self, other):
        return (
            ModInt(self.x * other.x) if isinstance(other, ModInt) else
            ModInt(self.x * other)
        )

    def __truediv__(self, other):
        return (
            ModInt(
                self.x * pow(other.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(self.x * pow(other, MOD - 2, MOD))
        )

    def __pow__(self, other):
        return (
            ModInt(pow(self.x, other.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(self.x, other, MOD))
        )

    __radd__ = __add__

    def __rsub__(self, other):
        return (
            ModInt(other.x - self.x) if isinstance(other, ModInt) else
            ModInt(other - self.x)
        )

    __rmul__ = __mul__

    def __rtruediv__(self, other):
        return (
            ModInt(
                other.x * pow(self.x, MOD - 2, MOD)
            ) if isinstance(other, ModInt) else
            ModInt(other * pow(self.x, MOD - 2, MOD))
        )

    def __rpow__(self, other):
        return (
            ModInt(pow(other.x, self.x, MOD)) if isinstance(other, ModInt) else
            ModInt(pow(other, self.x, MOD))
        )


ans = (N * M * (M * (N**2 - 1) + N * (M**2 - 1)) // 6) * reduce(
    lambda acc, i: acc * (N * M - 2 - i) / (K - 2 - i),
    range(K - 2),
    ModInt(1)
)
print(ans)
