#include <bits/stdc++.h>
using namespace std;
struct node {
  int x;
  int y;
};
node point[2000 + 10];
int n;
int sum;
void solve() {
  for (int i = 2; i <= n; ++i) {
    point[i].y = point[i - 1].y + 1;
  }
  for (int i = 1; i <= n; ++i)
    for (int j = i + 1; j <= n; ++j) ++sum;
}
int main() {
  int k;
  int tem;
  scanf("%d%d", &n, &k);
  solve();
  if (k >= sum)
    puts("no solution");
  else {
    for (int i = 1; i <= n; ++i) {
      printf("%d %d\n", point[i].x, point[i].y);
    }
  }
  return 0;
}
