Language: C++

/*
          , -- 、
        /;;;;;;', 　　　
        i二二二i
      , ' 　    ヽ ???
     i　ﾉﾉﾉﾉﾉﾍ .', 　　
     〉ﾘi' ﾟ ヮﾟﾉﾚく　 WAyon..........
  ○⊂}〈lﾄ--ｲl〉{つ● 　　
      ,ｒ/ー i-ヽヽ 　　　
     ｀｀i_ﾗi_ﾗ
*/

#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<n;i++)
#define int long long
const int INF=(int)1e12;
const int mod=(int)1e9+7;
#define all(a) (a).begin(),(a).end()
typedef vector<vector<int>> graph;

#define pb push_back

struct UnionFind {
    vector<int> par; // par[i]:iの親の番号　(例) par[3] = 2 : 3の親が2

    UnionFind(int N) : par(N) { //最初は全てが根であるとして初期化
        for(int i = 0; i < N; i++) par[i] = i;
    }

    int root(int x) { // データxが属する木の根を再帰で得る：root(x) = {xの木の根}
        if (par[x] == x) return x;
        return par[x] = root(par[x]);
    }

    void unite(int x, int y) { // xとyの木を併合
        int rx = root(x); //xの根をrx
        int ry = root(y); //yの根をry
        if (rx == ry) return; //xとyの根が同じ(=同じ木にある)時はそのまま
        par[rx] = ry; //xとyの根が同じでない(=同じ木にない)時：xの根rxをyの根ryにつける
    }

    bool same(int x, int y) { // 2つのデータx, yが属する木が同じならtrueを返す
        int rx = root(x);
        int ry = root(y);
        return rx == ry;
    }
};

int gcd(int a,int b){
    if(a%b==0)return b;
    return gcd(b,a%b);
}


signed main() {
    int n,m;cin >>n>>m;
    if(n%2==0){
        int l=n/2;int r=n/2+1;
        rep(i,m){
            cout <<l<<" "<<r<<endl;
            l--;r++;
        }
    }
    else{
        int l=n/2,r=n/2+2;
        rep(i,m){
            cout <<l<<" "<<r<<endl;
            l--;r++;
        }

    }
}




/*
          , -- 、
        /;;;;;;', 　　　
        i二二二i
      , ' 　    ヽ ???
     i　ﾉﾉﾉﾉﾉﾍ .', 　　
     〉ﾘi' ﾟ ヮﾟﾉﾚく　 WAyon..........
  ○⊂}〈lﾄ--ｲl〉{つ● 　　
      ,ｒ/ー i-ヽヽ 　　　
     ｀｀i_ﾗi_ﾗ
*/

#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<n;i++)
#define int long long
const int INF=(int)1e12;
const int mod=(int)1e9+7;
#define all(a) (a).begin(),(a).end()
typedef vector<vector<int>> graph;

#define pb push_back

struct UnionFind {
    vector<int> par; // par[i]:iの親の番号　(例) par[3] = 2 : 3の親が2

    UnionFind(int N) : par(N) { //最初は全てが根であるとして初期化
        for(int i = 0; i < N; i++) par[i] = i;
    }

    int root(int x) { // データxが属する木の根を再帰で得る：root(x) = {xの木の根}
        if (par[x] == x) return x;
        return par[x] = root(par[x]);
    }

    void unite(int x, int y) { // xとyの木を併合
        int rx = root(x); //xの根をrx
        int ry = root(y); //yの根をry
        if (rx == ry) return; //xとyの根が同じ(=同じ木にある)時はそのまま
        par[rx] = ry; //xとyの根が同じでない(=同じ木にない)時：xの根rxをyの根ryにつける
    }

    bool same(int x, int y) { // 2つのデータx, yが属する木が同じならtrueを返す
        int rx = root(x);
        int ry = root(y);
        return rx == ry;
    }
};

int gcd(int a,int b){
    if(a%b==0)return b;
    return gcd(b,a%b);
}


signed main() {
    int n,m;cin >>n>>m;
    if(n%2){
        int l=n/2;int r=n/2+1;
        rep(i,m){
            cout <<l<<" "<<r<<endl;
            l--;r++;
        }
    }
    else{
        int l=n/2,r=n/2+2;
        rep(i,m){
            cout <<l<<" "<<r<<endl;
            l--;r++;
        }

    }
}




























Compiler output:
a.cc:94:11: error: redefinition of 'const long long int INF'
   94 | const int INF=(int)1e12;
      |           ^~~
a.cc:17:11: note: 'const long long int INF' previously defined here
   17 | const int INF=(int)1e12;
      |           ^~~
a.cc:95:11: error: redefinition of 'const long long int mod'
   95 | const int mod=(int)1e9+7;
      |           ^~~
a.cc:18:11: note: 'const long long int mod' previously defined here
   18 | const int mod=(int)1e9+7;
      |           ^~~
a.cc:101:8: error: redefinition of 'struct UnionFind'
  101 | struct UnionFind {
      |        ^~~~~~~~~
a.cc:24:8: note: previous definition of 'struct UnionFind'
   24 | struct UnionFind {
      |        ^~~~~~~~~
a.cc:127:5: error: redefinition of 'long long int gcd(long long int, long long int)'
  127 | int gcd(int a,int b){
      |     ^~~
a.cc:50:5: note: 'long long int gcd(long long int, long long int)' previously defined here
   50 | int gcd(int a,int b){
      |     ^~~
a.cc:133:8: error: redefinition of 'int main()'
  133 | signed main() {
      |        ^~~~
a.cc:56:8: note: 'int main()' previously defined here
   56 | signed main() {
      |        ^~~~