#include #include using namespace std; int main(){ int N, k; cin >> N >> k; vector A(N); for (int i = 0; i < N; i++){ cin >> A[i]; } vector B(N); for (int i = 0; i < N; i++){ cin >> B[i]; } if (k > N){ if (A == B){ cout << "Yes" << endl; } else { cout << "No" << endl; } } else if (k == N){ vector A2 = A; reverse(A2.begin(), A2.end()); if (A == B || A2 == B){ cout << "Yes" << endl; } else { cout << "No" << endl; } } else if (k == N - 1){ vector C = B; for (int i = 0; i < N; i++){ C.push_back(A[i]); } for (int i = 0; i < N; i++){ C.push_back(A[i]); } C.push_back(-1); for (int i = N - 1; i >= 0; i--){ C.push_back(A[i]); } for (int i = N - 1; i >= 0; i--){ C.push_back(A[i]); } vector Z = atcoder::z_algorithm(C); bool ok = false; for (int i = N; i <= N * 5; i++){ if (Z[i] >= N){ ok = true; } } if (ok){ cout << "Yes" << endl; } else { cout << "No" << endl; } } else { sort(A.begin(), A.end()); sort(B.begin(), B.end()); if (A == B){ cout << "Yes" << endl; } else { cout << "No" << endl; } } }