def can_sort(N, K, S, T): # グループを管理するためにvisitedリストを使用 visited = [False] * N groups = [] # グループ分け for i in range(N): if not visited[i]: group = [] j = i while not visited[j]: visited[j] = True group.append(j) j = (j + K) % N # 次に移動する位置 groups.append(group) # 各グループでSとTが一致するかを確認 for group in groups: # S[group]とT[group]をソートして一致するか確認 s_group = sorted(S[i] for i in group) t_group = sorted(T[i] for i in group) if s_group != t_group: return "No" return "Yes" # 入力の読み込み N, K = map(int, input().split()) S = [input().strip() for _ in range(N)] T = [input().strip() for _ in range(N)] # 結果を出力 print(can_sort(N, K, S, T))