#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<pair<int, int> > pts;
int res[4];
double ans = 0;
double sqr(int x) { return x * x; }
double dist(int i, int j) {
  return sqrt(sqr(pts[i].first - pts[j].first) +
              sqr(pts[i].second - pts[j].second));
}
void solve(int i, int j, int k, int l) {
  double curr = dist(i, j) + dist(j, k) + dist(k, l);
  if (curr > ans) {
    ans = curr;
    res[0] = i;
    res[1] = j;
    res[2] = k;
    res[3] = l;
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> m;
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      if (i <= n && j <= m) pts.push_back(make_pair(i, j));
      if (j <= m && n - i >= 0) pts.push_back(make_pair(n - i, j));
      if (i <= n && m - j >= 0) pts.push_back(make_pair(i, m - j));
      if (n - i >= 0 && m - j >= 0) pts.push_back(make_pair(n - i, m - j));
    }
  }
  for (int i = 0; i < pts.size(); i++) {
    for (int j = 0; j < pts.size(); j++) {
      for (int k = 0; k < pts.size(); k++) {
        for (int l = 0; l < pts.size(); l++) {
          if (pts[i] == pts[j] || pts[i] == pts[k] || pts[i] == pts[l] ||
              pts[j] == pts[k] || pts[j] == pts[l] || pts[k] == pts[l])
            continue;
          solve(i, j, k, l);
        }
      }
    }
  }
  for (int i = 0; i < 4; i++) {
    cout << pts[res[i]].first << " " << pts[res[i]].second << "\n";
  }
  return 0;
}
