#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
double dis(long u, long v, long p, long q) {
  return sqrt(((double)u - p) * (u - p) + ((double)q - v) * (q - v));
}
struct point {
  int x;
  int y;
};
int main() {
  int n, m;
  cin >> n >> m;
  if (n == 0) {
    cout << 0 << " " << 1 << endl;
    cout << 0 << " " << m << endl;
    cout << 0 << " " << 0 << endl;
    cout << 0 << " " << m - 1 << endl;
    return 0;
  }
  if (m == 0) {
    cout << 1 << " " << 0 << endl;
    cout << n << " " << 0 << endl;
    cout << 0 << " " << 0 << endl;
    cout << n - 1 << " " << 0 << endl;
    return 0;
  }
  double tam1 = 2 * dis(0, 0, n - 1, m);
  double tam2 = 2 * dis(0, 0, n, m - 1);
  double tam3 = sqrt(double(m) * m + double(n) * n) + max(m, n);
  if (tam3 >= tam1 && tam3 >= tam2) {
    cout << 0 << " " << 0 << endl;
    cout << n << " " << m << endl;
    if (n > m) {
      cout << 0 << " " << m << endl;
      cout << n << " " << 0 << endl;
    } else {
      cout << n << " " << 0 << endl;
      cout << 0 << " " << m << endl;
    }
    return 0;
  }
  if (n <= m) {
    cout << n - 1 << " " << m << endl;
    cout << 0 << " " << 0 << endl;
    cout << n << " " << m << endl;
    cout << 1 << " " << 0 << endl;
  } else {
    cout << n << " " << m - 1 << endl;
    cout << 0 << " " << 0 << endl;
    cout << n << " " << m << endl;
    cout << 0 << " " << 1 << endl;
  }
}
