#include<iostream>
#include<stack>
#include<vector>
using namespace std;
int main(){
int m, n, k;
cin >> m >> n >> k;
for(int i = 0; i < k; i++){
bool flag = false;
stack<int> s;
vector<int> v(n + 1);
// 读取序列
for(int j = 1; j <= n; j++){
cin >> v[j];
}
int current = 1;
for(int j = 1; j <= n; j++){
s.push(j);
if(s.size() > m){
break;
}
while(!s.empty() && s.top() == v[current]){
s.pop();
current++;
}
}
// 判断当前测试用例是否合法
if(current == n + 1){
flag = true;
}
// 输出当前测试用例的结果
if(flag){
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
return 0;
}