###############################################################################

from sys import stdout
from bisect import bisect_left as binl
from copy import copy, deepcopy
from collections import defaultdict
import math


mod = 1


def intin():
    input_tuple = input().split()
    if len(input_tuple) <= 1:
        return int(input_tuple[0])
    return tuple(map(int, input_tuple))


def intina():
    return [int(i) for i in input().split()]


def intinl(count):
    return [intin() for _ in range(count)]


def modadd(x, y):
    global mod
    return (x + y) % mod


def modmlt(x, y):
    global mod
    return (x * y) % mod


def lcm(x, y):
    while y != 0:
        z = x % y
        x = y
        y = z
    return x


def combination(x, y):
    assert(x >= y)

    ret = math.factorial(x)
    ret = ret // (math.factorial(x - y) * math.factorial(y))

    return ret


def get_divisors(x):
    retlist = []
    for i in range(1, int(x**0.5) + 3):
        if x % i == 0:
            retlist.append(i)
            retlist.append(x // i)
    return retlist


def get_factors(x):
    retlist = []
    for i in range(2, int(x**0.5) + 3):
        while x % i == 0:
            retlist.append(i)
            x = x // i
    retlist.append(x)
    return retlist


def make_linklist(xylist):
    linklist = {}
    for a, b in xylist:
        linklist.setdefault(a, [])
        linklist.setdefault(b, [])
        linklist[a].append(b)
        linklist[b].append(a)
    return linklist


def calc_longest_distance(linklist, v=1):
    distance_list = {}
    distance_count = 0
    distance = 0
    vlist_previous = []
    vlist = [v]
    nodecount = len(linklist)

    while distance_count < nodecount:
        vlist_next = []
        for v in vlist:
            distance_list[v] = distance
            distance_count += 1
            vlist_next.extend(linklist[v])
        distance += 1
        vlist_to_del = vlist_previous
        vlist_previous = vlist
        vlist = list(set(vlist_next) - set(vlist_to_del))

    max_distance = -1
    max_v = None
    for v, distance in distance_list.items():
        if distance > max_distance:
            max_distance = distance
            max_v = v

    return (max_distance, max_v)


def calc_tree_diameter(linklist, v=1):
    _, u = calc_longest_distance(linklist, v)
    distance, _ = calc_longest_distance(linklist, u)
    return distance


class UnionFind:

    def __init__(self, n):
        self.parent = [i for i in range(n)]

    def root(self, i):
        if self.parent[i] == i:
            return i
        self.parent[i] = self.root(self.parent[i])
        return self.parent[i]

    def unite(self, i, j):
        rooti = self.root(i)
        rootj = self.root(j)
        if rooti == rootj:
            return
        if rooti < rootj:
            self.parent[rootj] = rooti
        else:
            self.parent[rooti] = rootj

    def same(self, i, j):
        return self.root(i) == self.root(j)


###############################################################################


mod = 10**9 + 7


def main():
    n, m, k = intin()

    c = combination(n * m - 2, k - 2) % mod

    x_ans = ((n - 1) * n * (n + 1)) // 6
    x_ans = modmlt(x_ans, m)
    x_ans = modmlt(x_ans, m)
    x_ans = modmlt(x_ans, c)

    y_ans = ((m - 1) * m * (m + 1)) // 6
    y_ans = modmlt(y_ans, n)
    y_ans = modmlt(y_ans, n)
    y_ans = modmlt(y_ans, c)

    print(modadd(x_ans, y_ans))


if __name__ == '__main__':
    main() from sys import stdout from bisect import bisect_left as binl from copy import copy, deepcopy from collections import defaultdict import math math mod = 1 mod 1 def intin():
    input_tuple = input().split()
    if len(input_tuple) <= 1:
        return int(input_tuple[0])
    return tuple(map(int, input_tuple)) intin input_tuple = input().split() input_tuple input().split() ().split () input split if len(input_tuple) <= 1:
        return int(input_tuple[0])
     len(input_tuple) <= 1 len(input_tuple) len input_tuple 1 return int(input_tuple[0]) int(input_tuple[0]) int input_tuple[0] input_tuple 0 return tuple(map(int, input_tuple)) tuple(map(int, input_tuple)) tuple map(int, input_tuple) map int input_tuple def intina():
    return [int(i) for i in input().split()] intina int(i) for i in input().split() for i in input().split() i input().split() ().split () input split for i in input().split() int(i) int i return [int(i) for i in input().split()] [int(i) for i in input().split()] def intinl(count):
    return [intin() for _ in range(count)] intinl intin() for _ in range(count) for _ in range(count) _ range(count) range count for _ in range(count) intin() intin return [intin() for _ in range(count)] [intin() for _ in range(count)] count count def modadd(x, y):
    global mod
    return (x + y) % mod modadd global mod return (x + y) % mod (x + y) % mod x + y x y mod x x y y def modmlt(x, y):
    global mod
    return (x * y) % mod modmlt global mod return (x * y) % mod (x * y) % mod x * y x y mod x x y y def lcm(x, y):
    while y != 0:
        z = x % y
        x = y
        y = z
    return x lcm while y != 0:
        z = x % y
        x = y
        y = z
     y != 0 y 0 z = x % y z x % y x y x = y x y y = z y z return x x x x y y def combination(x, y):
    assert(x >= y)

    ret = math.factorial(x)
    ret = ret // (math.factorial(x - y) * math.factorial(y))

    return ret combination assert(x >= y) x >= y x y ret = math.factorial(x) ret math.factorial(x) math.factorial math factorial x ret = ret // (math.factorial(x - y) * math.factorial(y)) ret ret // (math.factorial(x - y) * math.factorial(y)) ret math.factorial(x - y) * math.factorial(y) math.factorial(x - y) math.factorial math factorial x - y x y math.factorial(y) math.factorial math factorial y return ret ret x x y y def get_divisors(x):
    retlist = []
    for i in range(1, int(x**0.5) + 3):
        if x % i == 0:
            retlist.append(i)
            retlist.append(x // i)
    return retlist get_divisors retlist = [] retlist [] for i in range(1, int(x**0.5) + 3):
        if x % i == 0:
            retlist.append(i)
            retlist.append(x // i)
     i range(1, int(x**0.5) + 3) range 1 int(x**0.5) + 3 int(x**0.5) int x**0.5 x 0.5 3 if x % i == 0:
            retlist.append(i)
            retlist.append(x // i)
     x % i == 0 x % i x i 0 retlist.append(i) retlist.append retlist append i retlist.append(x // i) retlist.append retlist append x // i x i return retlist retlist x x def get_factors(x):
    retlist = []
    for i in range(2, int(x**0.5) + 3):
        while x % i == 0:
            retlist.append(i)
            x = x // i
    retlist.append(x)
    return retlist get_factors retlist = [] retlist [] for i in range(2, int(x**0.5) + 3):
        while x % i == 0:
            retlist.append(i)
            x = x // i
     i range(2, int(x**0.5) + 3) range 2 int(x**0.5) + 3 int(x**0.5) int x**0.5 x 0.5 3 while x % i == 0:
            retlist.append(i)
            x = x // i
     x % i == 0 x % i x i 0 retlist.append(i) retlist.append retlist append i x = x // i x x // i x i retlist.append(x) retlist.append retlist append x return retlist retlist x x def make_linklist(xylist):
    linklist = {}
    for a, b in xylist:
        linklist.setdefault(a, [])
        linklist.setdefault(b, [])
        linklist[a].append(b)
        linklist[b].append(a)
    return linklist make_linklist linklist = {} linklist {} for a, b in xylist:
        linklist.setdefault(a, [])
        linklist.setdefault(b, [])
        linklist[a].append(b)
        linklist[b].append(a)
     a b xylist linklist.setdefault(a, []) linklist.setdefault linklist setdefault a [] linklist.setdefault(b, []) linklist.setdefault linklist setdefault b [] linklist[a].append(b) [a].append [a] linklist a append b linklist[b].append(a) [b].append [b] linklist b append a return linklist linklist xylist xylist def calc_longest_distance(linklist, v=1):
    distance_list = {}
    distance_count = 0
    distance = 0
    vlist_previous = []
    vlist = [v]
    nodecount = len(linklist)

    while distance_count < nodecount:
        vlist_next = []
        for v in vlist:
            distance_list[v] = distance
            distance_count += 1
            vlist_next.extend(linklist[v])
        distance += 1
        vlist_to_del = vlist_previous
        vlist_previous = vlist
        vlist = list(set(vlist_next) - set(vlist_to_del))

    max_distance = -1
    max_v = None
    for v, distance in distance_list.items():
        if distance > max_distance:
            max_distance = distance
            max_v = v

    return (max_distance, max_v) calc_longest_distance distance_list = {} distance_list {} distance_count = 0 distance_count 0 distance = 0 distance 0 vlist_previous = [] vlist_previous [] vlist = [v] vlist [v] v nodecount = len(linklist) nodecount len(linklist) len linklist while distance_count < nodecount:
        vlist_next = []
        for v in vlist:
            distance_list[v] = distance
            distance_count += 1
            vlist_next.extend(linklist[v])
        distance += 1
        vlist_to_del = vlist_previous
        vlist_previous = vlist
        vlist = list(set(vlist_next) - set(vlist_to_del))

     distance_count < nodecount distance_count nodecount vlist_next = [] vlist_next [] for v in vlist:
            distance_list[v] = distance
            distance_count += 1
            vlist_next.extend(linklist[v])
         v vlist distance_list[v] = distance distance_list[v] distance_list v distance distance_count += 1 distance_count 1 vlist_next.extend(linklist[v]) vlist_next.extend vlist_next extend linklist[v] linklist v distance += 1 distance 1 vlist_to_del = vlist_previous vlist_to_del vlist_previous vlist_previous = vlist vlist_previous vlist vlist = list(set(vlist_next) - set(vlist_to_del)) vlist list(set(vlist_next) - set(vlist_to_del)) list set(vlist_next) - set(vlist_to_del) set(vlist_next) set vlist_next set(vlist_to_del) set vlist_to_del max_distance = -1 max_distance -1 max_v = None max_v None for v, distance in distance_list.items():
        if distance > max_distance:
            max_distance = distance
            max_v = v

     v distance distance_list.items() distance_list.items distance_list items if distance > max_distance:
            max_distance = distance
            max_v = v

     distance > max_distance distance max_distance max_distance = distance max_distance distance max_v = v max_v v return (max_distance, max_v) (max_distance, max_v) max_distance max_v linklist linklist v=1 v 1 def calc_tree_diameter(linklist, v=1):
    _, u = calc_longest_distance(linklist, v)
    distance, _ = calc_longest_distance(linklist, u)
    return distance calc_tree_diameter _, u = calc_longest_distance(linklist, v) _ calc_longest_distance(linklist, v) calc_longest_distance linklist v u distance, _ = calc_longest_distance(linklist, u) distance calc_longest_distance(linklist, u) calc_longest_distance linklist u _ return distance distance linklist linklist v=1 v 1 class UnionFind:

    def __init__(self, n):
        self.parent = [i for i in range(n)]

    def root(self, i):
        if self.parent[i] == i:
            return i
        self.parent[i] = self.root(self.parent[i])
        return self.parent[i]

    def unite(self, i, j):
        rooti = self.root(i)
        rootj = self.root(j)
        if rooti == rootj:
            return
        if rooti < rootj:
            self.parent[rootj] = rooti
        else:
            self.parent[rooti] = rootj

    def same(self, i, j):
        return self.root(i) == self.root(j)


############################################################################### UnionFind def __init__(self, n):
        self.parent = [i for i in range(n)]

     __init__ i for i in range(n) for i in range(n) i range(n) range n for i in range(n) i self.parent = [i for i in range(n)] self.parent self parent [i for i in range(n)] self self n n def root(self, i):
        if self.parent[i] == i:
            return i
        self.parent[i] = self.root(self.parent[i])
        return self.parent[i]

     root if self.parent[i] == i:
            return i
         self.parent[i] == i self.parent[i] self.parent self parent i i return i i self.parent[i] = self.root(self.parent[i]) self.parent[i] self.parent self parent i self.root(self.parent[i]) self.root self root self.parent[i] self.parent self parent i return self.parent[i] self.parent[i] self.parent self parent i self self i i def unite(self, i, j):
        rooti = self.root(i)
        rootj = self.root(j)
        if rooti == rootj:
            return
        if rooti < rootj:
            self.parent[rootj] = rooti
        else:
            self.parent[rooti] = rootj

     unite rooti = self.root(i) rooti self.root(i) self.root self root i rootj = self.root(j) rootj self.root(j) self.root self root j if rooti == rootj:
            return
         rooti == rootj rooti rootj return if rooti < rootj:
            self.parent[rootj] = rooti
        else:
            self.parent[rooti] = rootj

     rooti < rootj rooti rootj self.parent[rootj] = rooti self.parent[rootj] self.parent self parent rootj rooti self.parent[rooti] = rootj self.parent[rooti] self.parent self parent rooti rootj self self i i j j def same(self, i, j):
        return self.root(i) == self.root(j)


############################################################################### same return self.root(i) == self.root(j) self.root(i) == self.root(j) self.root(i) self.root self root i self.root(j) self.root self root j self self i i j j mod = 10**9 + 7 mod 10**9 + 7 10**9 10 9 7 def main():
    n, m, k = intin()

    c = combination(n * m - 2, k - 2) % mod

    x_ans = ((n - 1) * n * (n + 1)) // 6
    x_ans = modmlt(x_ans, m)
    x_ans = modmlt(x_ans, m)
    x_ans = modmlt(x_ans, c)

    y_ans = ((m - 1) * m * (m + 1)) // 6
    y_ans = modmlt(y_ans, n)
    y_ans = modmlt(y_ans, n)
    y_ans = modmlt(y_ans, c)

    print(modadd(x_ans, y_ans)) main n, m, k = intin() n intin() intin m k c = combination(n * m - 2, k - 2) % mod c combination(n * m - 2, k - 2) % mod combination(n * m - 2, k - 2) combination n * m - 2 n * m n m 2 k - 2 k 2 mod x_ans = ((n - 1) * n * (n + 1)) // 6 x_ans ((n - 1) * n * (n + 1)) // 6 (n - 1) * n * (n + 1) (n - 1) * n n - 1 n 1 n n + 1 n 1 6 x_ans = modmlt(x_ans, m) x_ans modmlt(x_ans, m) modmlt x_ans m x_ans = modmlt(x_ans, m) x_ans modmlt(x_ans, m) modmlt x_ans m x_ans = modmlt(x_ans, c) x_ans modmlt(x_ans, c) modmlt x_ans c y_ans = ((m - 1) * m * (m + 1)) // 6 y_ans ((m - 1) * m * (m + 1)) // 6 (m - 1) * m * (m + 1) (m - 1) * m m - 1 m 1 m m + 1 m 1 6 y_ans = modmlt(y_ans, n) y_ans modmlt(y_ans, n) modmlt y_ans n y_ans = modmlt(y_ans, n) y_ans modmlt(y_ans, n) modmlt y_ans n y_ans = modmlt(y_ans, c) y_ans modmlt(y_ans, c) modmlt y_ans c print(modadd(x_ans, y_ans)) print modadd(x_ans, y_ans) modadd x_ans y_ans if __name__ == '__main__':
    main() __name__ == '__main__' __name__ '__main__' main() main def lcm(x, y):
    while y != 0:
        z = x % y
        x = y
        y = z
    return x def lcm(x, y):
    while y != 0:
        z = x % y
        x = y
        y = z
    return x lcm def combination(x, y):
    assert(x >= y)

    ret = math.factorial(x)
    ret = ret // (math.factorial(x - y) * math.factorial(y))

    return ret def combination(x, y):
    assert(x >= y)

    ret = math.factorial(x)
    ret = ret // (math.factorial(x - y) * math.factorial(y))

    return ret combination def get_factors(x):
    retlist = []
    for i in range(2, int(x**0.5) + 3):
        while x % i == 0:
            retlist.append(i)
            x = x // i
    retlist.append(x)
    return retlist def get_factors(x):
    retlist = []
    for i in range(2, int(x**0.5) + 3):
        while x % i == 0:
            retlist.append(i)
            x = x // i
    retlist.append(x)
    return retlist get_factors def modmlt(x, y):
    global mod
    return (x * y) % mod def modmlt(x, y):
    global mod
    return (x * y) % mod modmlt def intin():
    input_tuple = input().split()
    if len(input_tuple) <= 1:
        return int(input_tuple[0])
    return tuple(map(int, input_tuple)) def intin():
    input_tuple = input().split()
    if len(input_tuple) <= 1:
        return int(input_tuple[0])
    return tuple(map(int, input_tuple)) intin def intina():
    return [int(i) for i in input().split()] def intina():
    return [int(i) for i in input().split()] intina def calc_longest_distance(linklist, v=1):
    distance_list = {}
    distance_count = 0
    distance = 0
    vlist_previous = []
    vlist = [v]
    nodecount = len(linklist)

    while distance_count < nodecount:
        vlist_next = []
        for v in vlist:
            distance_list[v] = distance
            distance_count += 1
            vlist_next.extend(linklist[v])
        distance += 1
        vlist_to_del = vlist_previous
        vlist_previous = vlist
        vlist = list(set(vlist_next) - set(vlist_to_del))

    max_distance = -1
    max_v = None
    for v, distance in distance_list.items():
        if distance > max_distance:
            max_distance = distance
            max_v = v

    return (max_distance, max_v) def calc_longest_distance(linklist, v=1):
    distance_list = {}
    distance_count = 0
    distance = 0
    vlist_previous = []
    vlist = [v]
    nodecount = len(linklist)

    while distance_count < nodecount:
        vlist_next = []
        for v in vlist:
            distance_list[v] = distance
            distance_count += 1
            vlist_next.extend(linklist[v])
        distance += 1
        vlist_to_del = vlist_previous
        vlist_previous = vlist
        vlist = list(set(vlist_next) - set(vlist_to_del))

    max_distance = -1
    max_v = None
    for v, distance in distance_list.items():
        if distance > max_distance:
            max_distance = distance
            max_v = v

    return (max_distance, max_v) calc_longest_distance mod = 10**9 + 7 10**9 + 7 mod def intinl(count):
    return [intin() for _ in range(count)] def intinl(count):
    return [intin() for _ in range(count)] intinl def make_linklist(xylist):
    linklist = {}
    for a, b in xylist:
        linklist.setdefault(a, [])
        linklist.setdefault(b, [])
        linklist[a].append(b)
        linklist[b].append(a)
    return linklist def make_linklist(xylist):
    linklist = {}
    for a, b in xylist:
        linklist.setdefault(a, [])
        linklist.setdefault(b, [])
        linklist[a].append(b)
        linklist[b].append(a)
    return linklist make_linklist def calc_tree_diameter(linklist, v=1):
    _, u = calc_longest_distance(linklist, v)
    distance, _ = calc_longest_distance(linklist, u)
    return distance def calc_tree_diameter(linklist, v=1):
    _, u = calc_longest_distance(linklist, v)
    distance, _ = calc_longest_distance(linklist, u)
    return distance calc_tree_diameter def main():
    n, m, k = intin()

    c = combination(n * m - 2, k - 2) % mod

    x_ans = ((n - 1) * n * (n + 1)) // 6
    x_ans = modmlt(x_ans, m)
    x_ans = modmlt(x_ans, m)
    x_ans = modmlt(x_ans, c)

    y_ans = ((m - 1) * m * (m + 1)) // 6
    y_ans = modmlt(y_ans, n)
    y_ans = modmlt(y_ans, n)
    y_ans = modmlt(y_ans, c)

    print(modadd(x_ans, y_ans)) def main():
    n, m, k = intin()

    c = combination(n * m - 2, k - 2) % mod

    x_ans = ((n - 1) * n * (n + 1)) // 6
    x_ans = modmlt(x_ans, m)
    x_ans = modmlt(x_ans, m)
    x_ans = modmlt(x_ans, c)

    y_ans = ((m - 1) * m * (m + 1)) // 6
    y_ans = modmlt(y_ans, n)
    y_ans = modmlt(y_ans, n)
    y_ans = modmlt(y_ans, c)

    print(modadd(x_ans, y_ans)) main class UnionFind:

    def __init__(self, n):
        self.parent = [i for i in range(n)]

    def root(self, i):
        if self.parent[i] == i:
            return i
        self.parent[i] = self.root(self.parent[i])
        return self.parent[i]

    def unite(self, i, j):
        rooti = self.root(i)
        rootj = self.root(j)
        if rooti == rootj:
            return
        if rooti < rootj:
            self.parent[rootj] = rooti
        else:
            self.parent[rooti] = rootj

    def same(self, i, j):
        return self.root(i) == self.root(j)


############################################################################### class UnionFind:

    def __init__(self, n):
        self.parent = [i for i in range(n)]

    def root(self, i):
        if self.parent[i] == i:
            return i
        self.parent[i] = self.root(self.parent[i])
        return self.parent[i]

    def unite(self, i, j):
        rooti = self.root(i)
        rootj = self.root(j)
        if rooti == rootj:
            return
        if rooti < rootj:
            self.parent[rootj] = rooti
        else:
            self.parent[rooti] = rootj

    def same(self, i, j):
        return self.root(i) == self.root(j)


############################################################################### UnionFind def get_divisors(x):
    retlist = []
    for i in range(1, int(x**0.5) + 3):
        if x % i == 0:
            retlist.append(i)
            retlist.append(x // i)
    return retlist def get_divisors(x):
    retlist = []
    for i in range(1, int(x**0.5) + 3):
        if x % i == 0:
            retlist.append(i)
            retlist.append(x // i)
    return retlist get_divisors mod = 1 1 mod def modadd(x, y):
    global mod
    return (x + y) % mod def modadd(x, y):
    global mod
    return (x + y) % mod modadd
###############################################################################

from sys import stdout
from bisect import bisect_left as binl
from copy import copy, deepcopy
from collections import defaultdict
import math


mod = 1


def intin():
    input_tuple = input().split()
    if len(input_tuple) <= 1:
        return int(input_tuple[0])
    return tuple(map(int, input_tuple))


def intina():
    return [int(i) for i in input().split()]


def intinl(count):
    return [intin() for _ in range(count)]


def modadd(x, y):
    global mod
    return (x + y) % mod


def modmlt(x, y):
    global mod
    return (x * y) % mod


def lcm(x, y):
    while y != 0:
        z = x % y
        x = y
        y = z
    return x


def combination(x, y):
    assert(x >= y)

    ret = math.factorial(x)
    ret = ret // (math.factorial(x - y) * math.factorial(y))

    return ret


def get_divisors(x):
    retlist = []
    for i in range(1, int(x**0.5) + 3):
        if x % i == 0:
            retlist.append(i)
            retlist.append(x // i)
    return retlist


def get_factors(x):
    retlist = []
    for i in range(2, int(x**0.5) + 3):
        while x % i == 0:
            retlist.append(i)
            x = x // i
    retlist.append(x)
    return retlist


def make_linklist(xylist):
    linklist = {}
    for a, b in xylist:
        linklist.setdefault(a, [])
        linklist.setdefault(b, [])
        linklist[a].append(b)
        linklist[b].append(a)
    return linklist


def calc_longest_distance(linklist, v=1):
    distance_list = {}
    distance_count = 0
    distance = 0
    vlist_previous = []
    vlist = [v]
    nodecount = len(linklist)

    while distance_count < nodecount:
        vlist_next = []
        for v in vlist:
            distance_list[v] = distance
            distance_count += 1
            vlist_next.extend(linklist[v])
        distance += 1
        vlist_to_del = vlist_previous
        vlist_previous = vlist
        vlist = list(set(vlist_next) - set(vlist_to_del))

    max_distance = -1
    max_v = None
    for v, distance in distance_list.items():
        if distance > max_distance:
            max_distance = distance
            max_v = v

    return (max_distance, max_v)


def calc_tree_diameter(linklist, v=1):
    _, u = calc_longest_distance(linklist, v)
    distance, _ = calc_longest_distance(linklist, u)
    return distance


class UnionFind:

    def __init__(self, n):
        self.parent = [i for i in range(n)]

    def root(self, i):
        if self.parent[i] == i:
            return i
        self.parent[i] = self.root(self.parent[i])
        return self.parent[i]

    def unite(self, i, j):
        rooti = self.root(i)
        rootj = self.root(j)
        if rooti == rootj:
            return
        if rooti < rootj:
            self.parent[rootj] = rooti
        else:
            self.parent[rooti] = rootj

    def same(self, i, j):
        return self.root(i) == self.root(j)


###############################################################################


mod = 10**9 + 7


def main():
    n, m, k = intin()

    c = combination(n * m - 2, k - 2) % mod

    x_ans = ((n - 1) * n * (n + 1)) // 6
    x_ans = modmlt(x_ans, m)
    x_ans = modmlt(x_ans, m)
    x_ans = modmlt(x_ans, c)

    y_ans = ((m - 1) * m * (m + 1)) // 6
    y_ans = modmlt(y_ans, n)
    y_ans = modmlt(y_ans, n)
    y_ans = modmlt(y_ans, c)

    print(modadd(x_ans, y_ans))


if __name__ == '__main__':
    main()
