#ifdef NACHIA #define _GLIBCXX_DEBUG #else #define NDEBUG #endif #include #include #include #include using i64 = long long; using u64 = unsigned long long; #define rep(i,n) for(int i=0; i void chmin(A& l, const A& r){ if(r < l) l = r; } template void chmax(A& l, const A& r){ if(l < r) l = r; } using namespace std; void testcase(){ int N, K; cin >> N >> K; vector> P(N-1); rep(i,N-1){ P[i].resize(N); rep(a,N){ cin >> P[i][a]; P[i][a]--; } } vector> H(N, {-1,-1}); H[N-1] = {-2,-1}; vector> I(N, {-1,-1}); I[0] = {-2,-1}; for(int i=0; i used(N); vector res(N, -2); res[root] = -1; for(int p=root; H[p].first>=0; p=H[p].second){ res[H[p].second] = H[p].first; used[H[p].first] = 1; } for(int p=root; I[p].first>=0; p=I[p].second){ res[I[p].second] = I[p].first; used[I[p].first] = 1; } rep(i,N-1) if(!used[i]){ rep(a,N) if(P[i][a] != -1 && res[a] == -2 && res[P[i][a]] != -2){ res[a] = i; used[i] = 1; break; } } cout << "Yes\n"; rep(i,N){ if(i) cout << " "; cout << (res[i]+1); } cout << "\n"; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); testcase(); return 0; }