import sys from operator import itemgetter from collections import defaultdict, deque import heapq import bisect import math import itertools stdin=sys.stdin sys.setrecursionlimit(10 ** 8) ip=lambda: int(sp()) fp=lambda: float(sp()) lp=lambda:list(map(int,stdin.readline().split())) sp=lambda:stdin.readline().rstrip() Yp=lambda:print('Yes') Np=lambda:print('No') inf = 1 << 60 inf1 = float('inf') #mod = 10 ** 9 + 7 mod = 998244353 eps = 1e-9 sortkey1 = itemgetter(0) sortkey2 = lambda x: (x[0], x[1]) ############################################################### H, W, M = lp() ans = 0 for i in range(M, 0, -1): a = pow(i, H, mod) - pow(i - 1, H, mod) b = pow(i, W, mod) - pow(i - 1, W, mod) ans += a * b % mod ans %= mod print(ans)