#include <bits/stdc++.h>
using namespace std;
long long sqr(const long long d) { return d * d; }
int main() {
  int n, m;
  scanf("%d %d", &n, &m);
  if (n && m) {
    if (n > m) {
      int cm, dm;
      long long mx = 0;
      for (long long c = 1; c <= m; c++) {
        for (long long d = 0; d < m; d++) {
          if (c != d) {
            const long long dist =
                sqr(n) + sqr(m - c) + sqr(n) + sqr(m) + sqr(n) + sqr(d);
            if (dist > mx) {
              mx = dist;
              cm = c;
              dm = d;
            }
          }
        }
      }
      if (mx > (sqr(n) + sqr(m)) * 2LL + sqr(n)) {
        printf("%d %d\n%d %d\n%d %d\n%d %d\n", 0, cm, n, m, 0, 0, n, dm);
      } else {
        printf("%d %d\n%d %d\n%d %d\n%d %d\n", 0, 0, n, m, 0, m, n, 0);
      }
    } else {
      int cm, dm;
      long long mx = 0;
      for (long long c = 1; c <= n; c++) {
        for (long long d = 0; d < n; d++) {
          if (c != d) {
            const long long dist =
                sqr(n - c) + sqr(m) + sqr(n) + sqr(m) + sqr(d) + sqr(m);
            if (dist > mx) {
              mx = dist;
              cm = c;
              dm = d;
            }
          }
        }
      }
      if (mx > (sqr(n) + sqr(m)) * 2LL + sqr(m)) {
        printf("%d %d\n%d %d\n%d %d\n%d %d\n", cm, 0, n, m, 0, 0, dm, m);
      } else {
        printf("%d %d\n%d %d\n%d %d\n%d %d\n", 0, 0, n, m, n, 0, 0, m);
      }
    }
  } else if (!n) {
    printf("%d %d\n%d %d\n%d %d\n%d %d\n", 0, 1, 0, m, 0, 0, 0, m - 1);
  } else {
    printf("%d %d\n%d %d\n%d %d\n%d %d\n", 1, 0, n, 0, 0, 0, n - 1, 0);
  }
  return 0;
}
