序列中的排列
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一个长度为 n 的序列,问它是否存在一个子序列,使得这个子序列是一个 k 的排列。

某个序列的子序列是从最初序列通过去除某些元素但不破坏余下元素的相对位置(在前或在后)而形成的新序列。

一个 k 的排列是一个长度为 k 的整数序列,其中包含了从 1k 的每个数字,每个数字仅出现一次。例如, (1) , (4, 3, 5, 1, 2) ,(3, 2, 1) 是排列,而 (1, 1) , (4, 3, 1) , (2, 3, 4) 不是。

输入描述:

第一行包含一个 T(1\le T\le 100),表示测试用例组数。

每个测试用例第一行包含两个整数 n,k(1\le n\le 100,1\le k\le 100)

第二行包含 n 个用空格分隔的整数 a_i(1\le a_i\le 100),表示给定的序列。

输出描述:

对于每个测试用例,假如给定序列中存在一个子序列,使得这个子序列是一个长度为 k 的排列,输出 YES,否则输出 NO
示例1

输入

复制
5
5 4
1 2 4 5 3
5 6
1 2 3 4 100
5 5
1 2 3 5 6
3 2
1 3 3
1 1
1

输出

复制
YES
NO
NO
NO
YES

说明

对于第一组测试用例,输入的序列包含一个子序列 (1,2,4,3),是一个 4 的排列。

对于第二组测试用例,输入的序列没有一个子序列是 6 的排列。