#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-9;
const double pi = acos(-1.0);
int x[3000], y[3000], n, k;
double dist(int i, int j) {
  return sqrt((x[i] - x[j] + .0) * (x[i] - x[j]) +
              (y[i] - y[j] + .0) * (y[i] - y[j]));
}
int main() {
  cin >> n >> k;
  int dx = -int(1e6), dy = int(1e6);
  for (int i = 0; i < n; ++i) {
    x[i] = i, y[i] = dy;
    dy -= 100000;
  }
  double d = (1e9);
  int tot = 0;
  for (int i = 0; i < n; ++i)
    for (int j = i + 1; j < n; ++j) {
      tot++;
      if (x[j] - x[i] >= d) break;
      d = min(d, dist(i, j));
    }
  if (tot > k) {
    for (int i = 0; i < n; ++i) cout << x[i] << " " << y[i] << endl;
  } else
    puts("no solution");
  return 0;
}
