#include <bits/stdc++.h>
using namespace std;
struct pt {
  long long x, y, idx;
  pt operator+(pt p) { return {x + p.x, y + p.y}; }
  pt operator-(pt p) { return {x - p.x, y - p.y}; }
  bool operator==(pt p) { return (idx == p.idx); }
};
pt p[12333];
long double dis(pt a, pt b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
int main() {
  int n, m;
  cin >> n >> m;
  int k = 0;
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= m; j++) {
      if ((i > 3 and i < n - 3) or (j > 3 and j < m - 3)) continue;
      p[k] = {i, j, k};
      k++;
    }
  }
  long double mx = 0;
  for (int i = 0; i < k; i++) {
    for (int j = 0; j < k; j++) {
      for (int ii = 0; ii < k; ii++) {
        for (int jj = 0; jj < k; jj++) {
          if (i == j or i == ii or i == jj or j == ii or j == jj or ii == jj)
            continue;
          mx = max(mx, dis(p[i], p[j]) + dis(p[j], p[ii]) + dis(p[ii], p[jj]));
        }
      }
    }
  }
  for (int i = 0; i < k; i++) {
    for (int j = 0; j < k; j++) {
      for (int ii = 0; ii < k; ii++) {
        for (int jj = 0; jj < k; jj++) {
          if (i == j or i == ii or i == jj or j == ii or j == jj or ii == jj)
            continue;
          if ((fabs(mx - (dis(p[i], p[j]) + dis(p[j], p[ii]) +
                          dis(p[ii], p[jj]))) < 1e-6)) {
            cout << p[i].x << " " << p[i].y << endl;
            cout << p[j].x << " " << p[j].y << endl;
            cout << p[ii].x << " " << p[ii].y << endl;
            cout << p[jj].x << " " << p[jj].y << endl;
            return 0;
          }
        }
      }
    }
  }
  return 0;
}
