#include #include #include using namespace std; using pii = pair; using vp = vector; int main() { int p, q; cin >> p >> q; if (p == 1) { cout << "Impossible" << endl; return 0; } cout << "Possible" << endl; int k = (2 * q / p) / 2 * 2; int x = 0, y = 0; vp ans(1, {x, y}); for (int i = 0; i < k / 2; i++) { ans.emplace_back(x, --y); if (i % 2 == 0) { ans.emplace_back(x, --y); } for (int j = 0; j < k - 1 - 2 * i; j++) { ans.emplace_back(++x, y); } ans.emplace_back(x, ++y); if (i % 2 == 0) { ans.emplace_back(x, ++y); } ans.emplace_back(x, ++y); if (i % 2 != 0) { ans.emplace_back(x, ++y); } for (int j = 0; j < 2 * i + 1; j++) { ans.emplace_back(++x, y); } ans.emplace_back(x, --y); if (i % 2 != 0) { ans.emplace_back(x, --y); } } cout << (int)ans.size() - 1 << endl; for (auto [x, y] : ans) { cout << x << " " << y << endl; } return 0; }