#include <bits/stdc++.h>
using namespace std;
int n, m, tot;
int getans(vector<pair<int, int> > o) {
  for (int i = 0; i < 4; i++)
    for (int j = i + 1; j < 4; j++) {
      if (o[i] == o[j]) return -1;
    }
  for (int i = 0; i < 4; i++) {
    if (o[i].first > n || o[i].second > m) return -1;
  }
  int ao = 0;
  for (int i = 0; i < 3; i++) {
    int ccx = o[i].first - o[i + 1].first;
    int ccy = o[i].second - o[i + 1].second;
    ao += (ccx * ccx + ccy * ccy);
  }
  return ao;
}
pair<int, int> in[300];
int main() {
  cin >> n >> m;
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= m; j++) {
      if (i == 0 || i == n) {
        if (j <= 10 || j >= m - 10) in[tot++] = pair<int, int>(i, j);
      } else if (j == 0 || j == m) {
        if (i <= 10 || i >= n - 10) in[tot++] = pair<int, int>(i, j);
      }
    }
  pair<int, int> p1 = pair<int, int>(0, 0);
  pair<int, int> p2 = pair<int, int>(n, m);
  int ans = -1;
  vector<pair<int, int> > ot;
  for (int i = 0; i < tot; i++)
    for (int j = i + 1; j < tot; j++) {
      vector<pair<int, int> > cur;
      cur.clear();
      cur.push_back(p1);
      cur.push_back(p2);
      cur.push_back(in[i]);
      cur.push_back(in[j]);
      sort(cur.begin(), cur.end());
      do {
        int cans = getans(cur);
        if (cans > ans) {
          ans = cans;
          ot = cur;
        }
      } while (next_permutation(cur.begin(), cur.end()));
    }
  for (int i = 0; i < 4; i++) {
    cout << ot[i].first << " " << ot[i].second << endl;
  }
  return 0;
}
