#include #include #include #include using namespace std; const int NN = 100001; int a[NN], d, u[] = {-1,-1,1,1}, v[] = {1,-1,1,-1}; set< pair > s; queue< pair > q; inline int aps( int x ) { if( x > 0 ) return x; return -x; } inline bool ok( int x, int y ) { return aps(a[x]-a[y]) <= d; } int main () { int n; scanf("%d%d", &n, &d); for(int i=0; i= n || ny >= n || !ok(nx,ny) || nx >= ny || s.find( make_pair(nx,ny) ) != s.end() ) continue; s.insert( make_pair(nx,ny) ); q.push( make_pair(nx,ny) ); } } // cout << s.size() << endl; for( set< pair >::iterator it = s.begin(); it != s.end(); ++it) printf("%d %d\n", 1+(*it).first, 1+(*it).second ); return 0; }