F 钓卡游戏
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述


AliceBob最近在玩一种卡牌游戏,规则如下:

牌库有 张牌。

一开始两个人手上没有卡牌。

在你的回合,你首先需要从牌库顶端抽一张卡牌,卡牌的数值只有 ,接着你可以选择

    1. 打出这张卡牌到得分区并获得这张卡对应数值的分数

    2. 把这张卡牌反盖在你的盖牌区的顶部

在对手的回合,如果对手打出的卡牌和你盖牌区顶部的卡牌数值一致,你可以翻开盖牌区顶部的牌放入你的得分区,并把对手打出的牌从对手的得分区钓入你的得分区。

Bob已经连胜Alice很多场了,Bob领先着Alice多达 分。

这时只剩下最后一场卡牌游戏,Bob认为Alice已经不可能翻盘,最后这场卡牌游戏Bob将一张不盖,完成绝杀。(即Bob只执行选择1)

Alice在经过这么多的挫败以后,已经把整个牌库的牌记了下来,Alice想知道她有没有机会完成翻盘。

本场游戏Alice先手。如果最终分数相等则算作Bob胜利。



输入描述:

第一行输入 T 表示 T 组数据.

接下来每组数据:
第一行输入 4 个整数 n,k,a,b 。
第二行输入 个数,表示牌库的抽取顺序。
保证

输出描述:

一行,输出 "Yes" 或 "No" 。

示例1

输入

复制
1
3 0 1 2
1 2 1 2 1 2

输出

复制
No

说明


示例2

输入

复制
1
3 3 2 1
2 1 2 1 1 1

输出

复制
Yes

说明

alice的牌序为221,可盖下1以钓取bob的牌111中最后一张1,最后alice为6分,bob为5分,故alice获胜。
示例3

输入

复制
1
4 8 1 3
3 1 1 3 3 1 1 3

输出

复制
Yes

说明

alice的牌序为3131,bob的牌序为1313,alice可以盖下两张3把bob的两张3钓走,最后alice为14分,bob为10分,故alice获胜。

备注: