#include<cstdio>#include<algorithm>#include<string>#include<iostream>#include<unordered_set>#include<cctype>#include<stack>usingnamespace std;constint N =1005;int out[N];intmain(){int m, n, k;scanf("%d%d%d",&m,&n,&k);while(k--){for(int i =1; i <= n; i++){scanf("%d",&out[i]);}
stack<int> st;int u =1;bool flag =false;for(int v =1; v <= n; v++){
st.push(v);//每次加入数字 if(st.size()> m){
flag =true;break;}//栈顶相同 while(st.size()&& st.top()== out[u]){
st.pop();
u++;}}if(!flag && st.empty()) cout<<"YES"<<endl;else cout<<"NO"<<endl;}return0;}