#include <bits/stdc++.h>
FILE *in = stdin, *out = stdout;
int n, m;
int cnt = 0;
int a[20][2];
int visit[20];
int path[20][2];
int ans[20][2];
int max = 0;
void input() { fscanf(in, "%d %d", &n, &m); }
void go(int x, int hap) {
  if (x == 5) {
    if (max < hap) {
      int flag = 0;
      for (int i = 1; i <= 4; i++) {
        for (int j = i + 1; j <= 4; j++) {
          if (path[i][0] == path[j][0] && path[i][1] == path[j][1]) flag = 1;
        }
      }
      if (flag == 0) {
        for (int i = 1; i <= 4; i++) {
          ans[i][0] = path[i][0], ans[i][1] = path[i][1];
        }
        max = hap;
      }
    }
    return;
  }
  for (int i = 1; i <= cnt; i++) {
    if (a[i][0] < 0 || a[i][0] > n || a[i][1] < 0 || a[i][1] > m) continue;
    if (visit[i] == 1) continue;
    visit[i] = 1;
    path[x][0] = a[i][0], path[x][1] = a[i][1];
    if (x == 1)
      go(x + 1, hap);
    else
      go(x + 1,
         hap + (path[x][0] - path[x - 1][0]) * (path[x][0] - path[x - 1][0]) +
             (path[x][1] - path[x - 1][1]) * (path[x][1] - path[x - 1][1]));
    visit[i] = 0;
    path[x][0] = path[x][1] = 0;
  }
}
void pro() {
  cnt++;
  a[cnt][0] = 0, a[cnt][1] = 0;
  cnt++;
  a[cnt][0] = 0, a[cnt][1] = 1;
  cnt++;
  a[cnt][0] = 1, a[cnt][1] = 0;
  cnt++;
  a[cnt][0] = n, a[cnt][1] = 0;
  cnt++;
  a[cnt][0] = n, a[cnt][1] = 1;
  cnt++;
  a[cnt][0] = n - 1, a[cnt][1] = 0;
  cnt++;
  a[cnt][0] = 0, a[cnt][1] = m;
  cnt++;
  a[cnt][0] = 0, a[cnt][1] = m - 1;
  cnt++;
  a[cnt][0] = 1, a[cnt][1] = m;
  cnt++;
  a[cnt][0] = n, a[cnt][1] = m;
  cnt++;
  a[cnt][0] = n, a[cnt][1] = m - 1;
  cnt++;
  a[cnt][0] = n - 1, a[cnt][1] = m;
  go(1, 0);
}
int main() {
  input();
  pro();
  for (int i = 1; i <= 4; i++) {
    fprintf(out, "%d %d\n", ans[i][0], ans[i][1]);
  }
  return 0;
}
