//題目大意:給出棧的最大容量 數列的長度 測試樣例的數量 判斷每個測試序列是否能夠由該棧得到
//思路:
//1.使用stl中的stack stack的size按照題設條件确定 (1)按順序将數字入棧 (2)棧頂元素等于目前出棧序列元素時 将棧中元素出棧 (3)當不相等時入棧
//2.當超過棧的容量時 當元素全部入棧 而棧頂元素不等于目前出棧元素時 判斷為NO (4)當全部元素入棧 出棧序列周遊完後 棧為空時 判斷為yes
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int main(){
int m, n, k;
cin >> m >> n >> k;
while (k--) {
int flag = 1;
stack<int> st;
vector<int> temp(n);
for (int i = 0; i < n; i++) {
cin >> temp[i];
}
int t = 0;
for (int i = 0; i < n; i++) {
st.push(i+1);
if (st.size() > m) {
flag = 0;
break;
}
while(st.top() == temp[t]) {
st.pop();
t++;
if (st.empty()) {
break;
}
}
}
if (!st.empty()) {
flag = 0;
}
if (flag) {
cout << "YES\n";
}else{
cout << "NO\n";
}
}
}