## https://yukicoder.me/problems/no/1210 MOD = 10 ** 9 + 7 def main(): N, M, X = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) answer = 1 for k in range(X): mask = 1 << k a_array = [ (1 if a & mask > 0 else 0) for a in A ] b_array = [ (1 if b & mask > 0 else 0) for b in B ] a_ = 0 for a in a_array: a_ ^= a b_ = 0 for b in b_array: b_ ^= b if a_ != b_: answer *= 0 break if N == 1 or M == 1: ans = 1 else: ans = pow(2, (N - 1) * (M - 1), MOD) answer *= ans answer %= MOD print(answer) if __name__ == "__main__": main()