Карта ойыны (Күрделі нұсқа)
Бұл есептің күрделі нұсқасы. Жалғыз айырмашылығы — бұл нұсқада карталар ажыратылмайды.
Алиса мен Боб карточка ойынын ойнайды. Оларға \(n\) картадан тұратын колода берілген, ол \(c_1, c_2, \ldots, c_n\) (жоғарыдан төмен қарай) түрінде бекітілген тәртіпте орналасқан.
Алиса бірінші жүреді. Ойыншылар кезекпен жүреді. Әр жүрісте ағымдағы ойыншы келесі әрекеттерді орындайды:
1-фаза: Колодада кемінде \(2\) карта қалғанша, ойыншы келесі операцияны кез келген рет қайталай алады (соның ішінде нөл рет те):
Үстіңгі картаны алып, оны өз қолына қосу;
Жаңа үстіңгі картаны алып, оны қарсыласына беру (қарсыласының қолына қосу).
2-фаза:
Егер колода енді бос болса, ойын аяқталады;
Әйтпесе ойыншы үстіңгі картаны жояды (тастайды), және жүріс қарсыласына өтеді.
Сізге бастапқы колода (бекітілген тәртіпте) және екі ойыншының соңғы қолдары (реттелмеген жиындар ретінде) берілген. Осы соңғы қолдарға әкелетін кез келген дұрыс жүрістер тізбегін қалпына келтіріңіз немесе мұның мүмкін еместігін анықтаңыз.
Енгізу
Бірінші жолда тесттер саны \(T\) берілген (\(1 \le T \le 10^4\)). Одан кейін тесттердін сипаттамасы беріледі.
Әр тесттін бірінші жолында екі бүтін сан \(n\) және \(k\) берілген (\(2 \le n \le 10^5\), \(1 \le k \le \lfloor n/2 \rfloor\)) "— колодадағы карталар саны және соңында әр ойыншыда болатын карталар саны.
Екінші жолда \(n\) бүтін сан \(c_1, c_2, \ldots, c_n\) берілген (\(1 \le c_i \le n\)) "— колода жоғарыдан төмен қарай.
Үшінші жолда \(k\) бүтін сан \(a_1, a_2, \ldots, a_k\) берілген (\(1 \le a_i \le n\)) "— Алиса қолындағы соңғы карталар, кез келген тәртіпте.
Төртінші жолда \(k\) бүтін сан \(b_1, b_2, \ldots, b_k\) берілген (\(1 \le b_i \le n\)) "— Боб қолындағы соңғы карталар, кез келген тәртіпте.
Барлық тесттер бойынша \(n\) қосындысы \(10^5\)-тен аспайтынына кепілдік беріледі.
Шығару
Әр тест үшін, егер дұрыс ойын жүрістерінің тізбегі болмаса, NO деп шығарыңыз.
Әйтпесе бірінші жолда YES деп шығарыңыз. Екінші жолда бір бүтін сан \(m\) "— ойындағы жүрістер саны. Содан кейін \(m\) бүтін сан \(t_1, t_2, \ldots, t_m\) шығарыңыз (әрқайсысы жеке жолда), мұнда \(t_i\) (\(t_i \ge 0\)) — \(i\)-жүрісте ағымдағы ойыншы орындаған 1-фаза операцияларының саны.
Егер бірнеше дұрыс шешім болса, кез келгенін шығаруға болады.
Мысалдар
Енгізу 1
6
5 2
1 2 3 4 5
1 5
2 4
5 1
1 1 1 2 2
2
2
3 1
1 2 3
1
3
6 2
1 2 2 1 1 2
1 2
2 1
6 2
1 2 2 1 1 2
1 2
2 1
3 1
1 2 3
1
2
Жауап 1
YES
2
1 1
YES
4
0 0 0 1
NO
YES
3
0 0 2
YES
3
2 0 0
YES
2
1 0