#include <bits/stdc++.h>
using namespace std;
int n, m;
int x[4], y[4];
int ans[4][2];
int best = 0;
inline int sqr(int x) { return x * x; }
inline int d(int x, int y) { return sqr(x) + sqr(y); }
int main() {
  scanf("%d %d", &n, &m);
  if (!n) {
    printf("%d %d\n", 0, 1);
    printf("%d %d\n", 0, m);
    printf("%d %d\n", 0, 0);
    printf("%d %d\n", 0, m - 1);
  } else if (!m) {
    printf("%d %d\n", 1, 0);
    printf("%d %d\n", n, 0);
    printf("%d %d\n", 0, 0);
    printf("%d %d\n", n - 1, 0);
  } else {
    int tmp[3];
    tmp[0] = 2 * d(n, m) + sqr(max(n, m));
    tmp[1] = d(n, m) + 2 * d(n - 1, m);
    tmp[2] = d(n, m) + 2 * d(n, m - 1);
    if (tmp[0] > tmp[1] && tmp[0] > tmp[2]) {
      puts("0 0");
      printf("%d %d\n", n, m);
      if (n > m) {
        printf("%d %d\n", 0, m);
        printf("%d %d\n", n, 0);
      } else {
        printf("%d %d\n", n, 0);
        printf("%d %d\n", 0, m);
      }
    } else if (tmp[1] > tmp[2]) {
      printf("%d %d\n", 1, 0);
      printf("%d %d\n", n, m);
      printf("%d %d\n", 0, 0);
      printf("%d %d\n", n - 1, m);
    } else {
      printf("%d %d\n", n, m - 1);
      printf("%d %d\n", 0, 0);
      printf("%d %d\n", n, m);
      printf("%d %d\n", 0, 1);
    }
  }
  return 0;
}
