mod = 998244353 def m_mul(a, b): n = len(a) ret = [[0 for _ in range(n)] for _ in range(n)] for i in range(n): for j in range(n): for k in range(n): ret[i][j] = (ret[i][j] + a[i][k] * b[k][j]) % mod return ret def p_mul(a, k): n = len(a) ret = [[0 for _ in range(n)] for _ in range(n)] for i in range(n): ret[i][i] = 1 while k > 0: if k % 2 == 1: ret = m_mul(a, ret) a = m_mul(a, a) k = k // 2 return ret H, W, sx, sy, gx, gy, K = map(int, input().split()) sx -= 1 sy -= 1 gx -= 1 gy -= 1 mat = [[0 for _ in range(H * W)] for _ in range(H * W)] for i in range(H): for j in range(W): for k in range(H): for l in range(W): if i == k and j == l: continue if i == k or j == l or i + j == k + l or i - j == k - l: mat[i * W + j][k * W + l] = 1 cnts_all = [[0 for _ in range(H * W)] for _ in range(H * W)] cnts_part = [[[0 for _ in range(H * W + 1)] for _ in range(H * W)] for _ in range(H * W)] for i in range(H * W): bitdp = [[0 for _ in range(H * W)] for _ in range(1 << (H * W))] bitdp[0][i] = 1 for j in range(1 << (H * W)): for k in range(H * W): for l in range(H * W): if (j >> l) & 1: continue if mat[k][l] == 0: continue bitdp[j + (1 << l)][l] += bitdp[j][k] bitdp[j + (1 << l)][l] %= mod for j in range(H * W): cnts_all[i][j] = bitdp[(1 << (H * W)) - 1][j] for j in range(1 << (H * W)): popcnt = 0 for k in range(H * W): if (j >> k) & 1: popcnt += 1 for k in range(H * W): cnts_part[i][k][popcnt] += bitdp[j][k] cnts_part[i][k][popcnt] %= mod div = K // (H * W) rem = K % (H * W) mat_pow = p_mul(cnts_all, div) ans = 0 for i in range(H * W): ans += mat_pow[sx * W + sy][i] * cnts_part[i][gx * W + gy][rem] ans %= mod print(ans)