#include <bits/stdc++.h>
using namespace std;
#pragma warning(disable : 4996)
struct point {
  int x, y;
};
int n, k;
int dx[2010], dy[2010];
int tot;
int sqr(int x) { return x * x; };
int imin(int a, int b) {
  if (a < b) return a;
  return b;
};
void algo() {
  int d = 2100000000;
  for (int i = 0; i < n; i++)
    for (int j = i + 1; j < n; j++) {
      tot++;
      if (dx[j] - dx[i] >= d) break;
      d = imin(d, sqr(dx[i] - dx[j]) + sqr(dy[i] - dy[j]));
    };
};
int main() {
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    dx[i] = 0;
    dy[i] = i;
  };
  algo();
  if (tot <= k)
    cout << "no solution";
  else {
    for (int i = 0; i < n; i++) cout << dx[i] << " " << dy[i] << endl;
  };
  return 0;
};
