## https://yukicoder.me/problems/no/1797 def main(): H, W, K = map(int, input().split()) if K == 1: print(1) return x = H * W patterns = [-1] * (K ** x) index = 0 for bit in range(K ** x): if patterns[bit] != -1: continue panel = [[-1] * W for _ in range(H)] b = bit y_set = set() for i in range(x): y = b % K y_set.add(y) h = i // W w = i % W panel[h][w] = y b //= K if len(y_set) < K: continue for dh in range(H): for dw in range(W): new_panel = [[-1] * W for _ in range(H)] for h in range(H): for w in range(W): new_panel[h][w] = panel[(h + dh) % H][(w + dw) % W] c = 0 z = 1 for i in range(x): c += new_panel[i // W][i % W] * z z *= K patterns[c] = index index += 1 print(index) if __name__ == "__main__": main()