#include using namespace std; #define ll long long #define rep(i, n) for (int i = 0; i < (int)(n); i++) template bool chmin(T& a, T b){if(a > b){a = b; return true;} return false;} template bool chmax(T& a, T b){if(a < b){a = b; return true;} return false;} const long long mod=998244353; const long long mod2=469762049; const long long mod100=1000000007; int main(){ cout.tie()->sync_with_stdio(0); cin.tie(0); int N,M,K;cin>>N>>M>>K; int all=N*(N-1)/2; if(all-Mmaximum){ cout<<"No"<>ans; for(int i=N;i>N-K;i--){ ans.push_back({i-1,i}); } for(int i=1;i<=N-K+1;i++){ for(int j=i+1;j<=N-K+1;j++){ if(ans.size()==all-M) break; ans.push_back({i,j}); } } for(int i=2;i<=N-K+1;i++){ if(ans.size()==all-M) break; ans.push_back({i,N-K+2}); } bool use[N+1][N+1]; for(int i=1;i<=N;i++){ for(int j=i+1;j<=N;j++) use[i][j]=false; } for(auto p:ans){ use[p.first][p.second]=true; } for(int i=1;i<=N;i++){ for(int j=i+1;j<=N;j++){ if(use[i][j]==false){ cout<