#include <bits/stdc++.h>
using namespace std;
template <class T>
ostream& operator<<(ostream& fout, const vector<T>& vec) {
  for (const auto& el : vec) {
    fout << el << ' ';
  }
  return fout;
}
template <class T>
istream& operator>>(istream& fin, vector<T>& vec) {
  for (size_t i = 0; i < vec.size(); ++i) {
    cin >> vec[i];
  }
  return fin;
}
int Solve() {
  int64_t n, k;
  cin >> n >> k;
  int64_t tot = (n - 1) * n / 2;
  if (tot <= k) {
    cout << "no solution\n";
    return 0;
  }
  for (int i = 0; i < n; ++i) {
    cout << 0 << ' ' << i + 1 << '\n';
  }
  return 0;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  Solve();
  return 0;
}
