#include <bits/stdc++.h>
using namespace std;
int n, m;
struct pt {
  int x, y;
  pt() {}
  pt(int _x, int _y) : x(_x), y(_y) {}
  bool operator!=(const pt& p) const { return x != p.x || y != p.y; }
};
double SQR(double x) { return x * x; }
double Calc(pt a, pt b) { return sqrt(SQR(a.x - b.x) + SQR(a.y - b.y)); }
void Insert(vector<pt>& v, pt p) {
  if (p.x < 0 || p.x > n || p.y < 0 || p.y > m) return;
  v.push_back(p);
}
int main() {
  while (cin >> n >> m) {
    vector<pt> p;
    Insert(p, pt(0, 0));
    Insert(p, pt(1, 0));
    Insert(p, pt(0, 1));
    Insert(p, pt(n, 0));
    Insert(p, pt(n - 1, 0));
    Insert(p, pt(n, 1));
    Insert(p, pt(0, m));
    Insert(p, pt(0, m - 1));
    Insert(p, pt(1, m));
    Insert(p, pt(n, m));
    Insert(p, pt(n - 1, m));
    Insert(p, pt(n, m - 1));
    double ans = 0;
    pt a, b, c, d;
    for (__typeof(p.begin()) p1 = p.begin(); p1 != p.end(); p1++)
      for (__typeof(p.begin()) p2 = p.begin(); p2 != p.end(); p2++)
        if (*p2 != *p1) {
          for (__typeof(p.begin()) p3 = p.begin(); p3 != p.end(); p3++)
            if (*p3 != *p1 && *p3 != *p2) {
              for (__typeof(p.begin()) p4 = p.begin(); p4 != p.end(); p4++)
                if (*p4 != *p1 && *p4 != *p2 && *p4 != *p3) {
                  double t = Calc(*p1, *p2) + Calc(*p2, *p3) + Calc(*p3, *p4);
                  if (ans < t) {
                    ans = t;
                    a = *p1;
                    b = *p2;
                    c = *p3;
                    d = *p4;
                  }
                }
            }
        }
    printf("%d %d\n", a.x, a.y);
    printf("%d %d\n", b.x, b.y);
    printf("%d %d\n", c.x, c.y);
    printf("%d %d\n", d.x, d.y);
  }
  return 0;
}
