#include #include #include #include using namespace std; unordered_map countGroup(const vector& group) { unordered_map counter; for (const string& name : group) { ++counter[name]; } return counter; } bool canRearrange(int N, int K, const vector& S, const vector& T) { vector> groupsS(K), groupsT(K); for (int i = 0; i < N; ++i) { groupsS[i % K].push_back(S[i]); groupsT[i % K].push_back(T[i]); } for (int i = 0; i < K; ++i) { if (countGroup(groupsS[i]) != countGroup(groupsT[i])) { return false; } } return true; } int main() { int N, K; cin >> N >> K; vector S(N), T(N); for (int i = 0; i < N; ++i) cin >> S[i]; for (int i = 0; i < N; ++i) cin >> T[i]; if (canRearrange(N, K, S, T)) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; }