#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:64000000")
using namespace std;
template <typename X>
inline X abs(const X& a) {
  return a < 0 ? -a : a;
}
template <typename X>
inline X sqr(const X& a) {
  return a * a;
}
const int INF = INT_MAX / 2;
const long double EPS = 1e-9;
const long double PI = 3.1415926535897932384626433832795;
const int N = 2000 + 3;
int n, k;
inline bool read() {
  if (!(cin >> n >> k)) return false;
  return true;
}
inline void solve() {
  int cnt = (n * (n - 1)) / 2;
  if (k >= cnt) {
    puts("no solution");
    return;
  }
  int last = 0;
  int val = n;
  for (int i = 0; i < int(n); i++) {
    cout << 0 << " " << last << endl;
    last += val;
    val--;
  }
}
int main() {
  assert(read());
  solve();
  return 0;
}
