#include <bits/stdc++.h>
using namespace std;
const int maxN = 1000009;
int n, k, ile, m, a, b, tab[maxN], tab2[maxN], tab3[maxN], pocz = 0, pocz2;
void przesunlewo() {
  swap(tab3[pocz2], tab3[pocz2 - 1]);
  pocz2--;
}
void przesunpr() {
  swap(tab3[pocz2], tab3[pocz2 + 1]);
  pocz2++;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n;
  for (int i = 0; i < n; i++) cin >> tab[i];
  for (int i = 0; i < n; i++) cin >> tab2[i];
  if (tab2[0] == 0) swap(tab2[0], tab2[1]);
  for (int i = 0; i < n; i++)
    if (tab[i] == tab2[0]) {
      pocz = i;
      break;
    }
  for (int i = 0; i < n; i++) {
    int x = (i - pocz + n) % n;
    tab3[x] = tab[i];
    if (tab[i] == 0) pocz2 = x;
  }
  int pom = 0;
  if (pocz2 > 1)
    while (pocz2 != 1) {
      przesunlewo();
    }
  int wyn = 0;
  for (int i = 0; i < n; i++)
    if (tab3[i] == tab2[i]) wyn++;
  if (wyn == n)
    cout << "YES";
  else {
    while (pocz2 != n - 1) {
      przesunpr();
      if (tab3[pocz2] == tab2[pocz2]) wyn++;
      if (tab3[pocz2 - 1] == tab2[pocz2 - 1]) wyn++;
      if (tab3[pocz2] == tab2[pocz2 - 1]) wyn--;
      if (tab3[pocz2 - 1] == tab2[pocz2]) wyn--;
      if (wyn == n) {
        cout << "YES";
        pom = 1;
        break;
      }
    }
    if (pom == 0) cout << "NO";
  }
  return 0;
}
