fun main() {
val n = readLine()!!.toInt()
var list1 = readLine()!!.split(" ").map { it.toInt() }
var m = readLine()!!.toInt()
var list2 = readLine()!!.split(" ").map { it.toInt() }
var index = 0
for (i in 0 until n) {
if (list1[i] == list2[0]) {
index = i
}
}
var flag = true
var i = 0
while ( i < m) {
if (list1[index] == list2[i]) {
flag = true
if (index < n-1) {
index++
} else if (index == n-1) {
index = 0
}
} else {
flag = false
}
i++
}
if (flag)
println("Yes")
else
println("No")
}
//fun main(){
// var w = readln().split(" ").map{it.toInt()}
// val list = readln().split("").toMutableList()
// var q = w[1]
// while (q > 0) {
// var z = w[0]
// var x = list[z-1]
// while (z > 0) {
// list[z] = list[z - 1]
// z--
// }
// list[0] = x
// q--
// }
// println(list)
//}
////
////
////
////fun main(){
//// val nm = readLine()!!.split(' ').map{it.toInt()}
//// val bigList = readLine()!!.split(' ').map{it.toInt()}
//// val smallList = readLine()!!.split(' ').map{it.toInt()}
//// var boolean = true
////
//// for(j in 0..bigList.size-smallList.size + 1) {
////
//// for (i in 0..smallList.lastIndex) {
//// if (smallList[i] == bigList[i + j]) {
//// continue
//// } else {
//// boolean = false
//// break
//// }
//// }
//// }
////
//// if (boolean){
//// println("yes")
//// } else
//// println("no")
////}
//
//
//fun main (){
// val nm = readLine()!!.split(' ').map { it.toInt() }
// val bigList = readLine()!!.split(' ').map { it.toInt() }
// val smallList = readLine()!!.split(' ').map { it.toInt() }
//
// var flag = false
//
// for(i in 0 until bigList.size - smallList.size + 1) {
// for (j in 0 until smallList.size) {
// if (bigList[i + j] != smallList[j]) {
// break
// }
// if (j == smallList.size - 1) {
// flag = true
// }
// }
//
// }
// if (flag) {
// println("Yes")
// } else {
// println("No")
// }
//}
//
//
//
//