#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define tiii tuple<int,int,int>
vector<pii> dirs = {{1,0},{-1,0},{0,1},{0,-1},{1,1},{-1,1},{1,-1},{-1,-1},};
int main(){
    int n, t;
    cin >> n >> t;
    set<pii> occ;
    vector<tiii> arr(n);
    for(int i = 0; i < n; i++){
        int r,c;
        cin >> r >> c;
        arr[i] = {r,c,i}; 
        occ.insert({r,c});
    }
    set<pii> vis;
    queue<pii> q;
    q.push(*(occ.begin()));
    
    while(q.size()){
        int r,c;
        tie(r,c) = q.front(); q.pop();
        if(!occ.count({r,c}) || vis.count({r,c})) {
            continue;
        }
        vis.insert({r,c});
        for(pii p : dirs){
            q.push({r+p.first,c + p.second});
        }
    }
    if(vis.size() != n){
        cout << "NO" << endl;
        return 0;
    }
    cout << "YES\n";
    sort(arr.begin(),arr.end());
    for(int i = 0; i < n; i++){
        cout << get<2>(arr[i])+1 << endl;
    }
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |