#include <bits/stdc++.h>
using namespace std;
inline long long inp() {
  long long n = 0, s = 1;
  char p = getchar();
  if (p == '-') s = -1;
  while ((p < '0' || p > '9') && p != EOF && p != '-') p = getchar();
  if (p == '-') s = -1, p = getchar();
  while (p >= '0' && p <= '9') {
    n = (n << 3) + (n << 1) + (p - '0');
    p = getchar();
  };
  return n * s;
}
long long power(long long a, long long b) {
  long long r = 1, x = a;
  if (a == 0) return 0;
  while (b) {
    if (b & 1) r = (r * x) % 1000000007;
    x = (x * x) % 1000000007;
    b >>= 1;
  }
  return r % 1000000007;
}
int gcd(int a, int b) {
  if (b == 0) return a;
  gcd(b, a % b);
}
long long distance(long long a, long long b, long long c, long long d) {
  double ans;
  ans = (a - c) * (a - c) + (b - d) * (b - d);
  ans = sqrt(ans);
  return ceil(ans);
}
int main() {
  long long i, j, k, t, r, w, x, y, z, ans = 0, n = 0, m, d, sum, test, c = 0;
  n = inp();
  k = inp();
  if (((n * (n - 1)) / 2) <= k) {
    printf("no solution\n");
    return 0;
  }
  for (i = 0; i < n; i++) cout << "0 " << i << endl;
  return 0;
}
