#include <bits/stdc++.h>
using namespace std;
double distance(pair<int, int> a, pair<int, int> b) {
  return pow(a.first - b.first, 2.0) + pow(a.second - b.second, 2.0);
}
int gettot(vector<pair<int, int> > v) {
  sort(v.begin(), v.end());
  double d = 1e100;
  int tot = 0;
  for (int i = 0; i < v.size(); i++) {
    for (int j = i + 1; j < v.size(); j++) {
      ++tot;
      if (v[j].first - v[i].first >= d) break;
    }
  }
  return tot;
}
int main() {
  int n = 4;
  int k = 3;
  cin >> n >> k;
  int count = 0;
  int max = (n - 1) * n / 2;
  if (k >= max) {
    cout << "no solution" << endl;
    return 0;
  }
  int ys = 0;
  vector<pair<int, int> > v;
  for (int i = 1; i <= n; i++) {
    cout << 1 << " " << ys << endl;
    ys += 10;
  }
  return 0;
}
