#include #include #include #include #include using namespace std; bool can_rearrange(int N, int K, const vector& S, const vector& T) { vector> s_groups(K), t_groups(K); for (int i = 0; i < N; ++i) { s_groups[i % K].insert({i % K, S[i]}); t_groups[i % K].insert({i % K, T[i]}); } for (int i = 0; i < K; ++i) { vector s_vec, t_vec; for (auto& [_, str] : s_groups[i]) s_vec.push_back(str); for (auto& [_, str] : t_groups[i]) t_vec.push_back(str); sort(s_vec.begin(), s_vec.end()); sort(t_vec.begin(), t_vec.end()); if (s_vec != t_vec) 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 (can_rearrange(N, K, S, T)) { cout << "Yes\n"; } else { cout << "No\n"; } return 0; }