#include <bits/stdc++.h>
using namespace std;
 
#define ll long long int
#define f(i,l,n) for(int i=l;i<n;i++) 
#define E "\n"
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define F first
#define S second
#define all(c) (c).begin(),(c).end()
#define sz(v) (int)(v).size()
#define vi(typ) vector<typ>
#define ld long double



int main()
{


      #ifndef ONLINE_JUDGE
      freopen("input.txt","r",stdin);
      freopen("output.txt","w",stdout);
        #endif
      ll n,x;
      cin >> n >> x;
      f(i,0,n)
      {
          ll t;
          cin >> t;
          if(t!=x) cout<<t<<" ";
      }
      
       return 0;
}
#include <iostream>
#include <algorithm>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <numeric>
#include <bitset>
#include <cmath>

static const int MOD = 1000000007;
using ll = long long;
using u32 = unsigned;
using u64 = unsigned long long;
using namespace std;

template<class T> constexpr T INF = ::numeric_limits<T>::max() / 32 * 15 + 208;

template <class T, class U>
vector<T> make_v(U size, const T& init){ return vector<T>(static_cast<size_t>(size), init); }

template<class... Ts, class U>
auto make_v(U size, Ts... rest) { return vector<decltype(make_v(rest...))>(static_cast<size_t>(size), make_v(rest...)); }

template<class T> void chmin(T &a, const T &b){ a = (a < b ? a : b); }
template<class T> void chmax(T &a, const T &b){ a = (a > b ? a : b); }



int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; ++i) {
        cout << (i*2+1)%n+1 << " " << (i*2)%n+1 << "\n";
    }
    return 0;
}