import
java.util.ArrayList;
public
class
Main {
public
static
boolean
check(ArrayList<Integer> v, ArrayList<Integer> w) {
int
L = v.size();
int
R = w.size();
for
(
int
i =
0
; i < L; i++) {
v.add(v.get(i));
}
for
(
int
i =
0
; i < L; i++) {
int
p =
0
;
for
(
int
j =
0
; j < L; j++) {
if
(v.get(i + j).equals(w.get(p))) {
p++;
}
if
(p == R)
return
true
;
}
}
return
false
;
}
public
static
void
main(String[] args) {
int
N =
4
;
ArrayList<Integer> A =
new
ArrayList<>();
A.add(
1
);
A.add(
1
);
A.add(
2
);
A.add(
3
);
ArrayList<Integer> B =
new
ArrayList<>();
B.add(
1
);
B.add(
2
);
B.add(
2
);
B.add(
1
);
if
(A.equals(B)) {
System.out.println(
"YES"
);
return
;
}
boolean
ed =
true
;
for
(
int
i =
0
; i < N; i++) {
if
(A.get(i).equals(A.get((i +
1
) % N))) {
ed =
false
;
}
if
(B.get(i).equals(B.get((i +
1
) % N))) {
ed =
false
;
}
}
if
(ed) {
System.out.println(
"NO"
);
return
;
}
ArrayList<Integer> modifiedA =
new
ArrayList<>();
ArrayList<Integer> modifiedB =
new
ArrayList<>();
for
(
int
i =
0
; i < N; i++) {
if
(!A.get(i).equals(A.get((i +
1
) % N))) {
modifiedA.add(A.get(i));
}
if
(!B.get(i).equals(B.get((i +
1
) % N))) {
modifiedB.add(B.get(i));
}
}
if
(modifiedA.isEmpty()) {
modifiedA.add(A.get(
0
));
}
if
(modifiedB.isEmpty()) {
modifiedB.add(B.get(
0
));
}
if
(check(modifiedA, modifiedB)) {
System.out.println(
"YES"
);
}
else
{
System.out.println(
"NO"
);
}
}
}