#include <bits/stdc++.h>
using namespace std;
const long long maxN = 1e5 + 7, MOD = 1e9 + 9, INF = 1e9 + 7, N = 1007,
                sqr = 383008016;
pair<long long, long long> res[10];
long long n, m;
set<pair<long long, long long> > q;
vector<pair<long long, long long> > p;
long double ans, tmp;
long double dis(pair<long long, long long> x, pair<long long, long long> y) {
  long double res = ((x.first - y.first) * (x.first - y.first)) +
                    ((x.second - y.second) * (x.second - y.second));
  return sqrt(res);
}
void add(long long x, long long y) {
  if (x >= 0 && x <= n && y >= 0 && y <= m)
    q.insert(pair<long long, long long>(x, y));
}
int main() {
  cin >> n >> m;
  add(0, 0);
  add(n, 0);
  add(0, 1);
  add(n - 1, 0);
  add(1, 0);
  add(n, 1);
  add(1, 1);
  add(n - 1, 1);
  add(0, m);
  add(n, m);
  add(0, m - 1);
  add(n - 1, m);
  add(1, m);
  add(n, m - 1);
  add(1, m - 1);
  add(n - 1, m - 1);
  for (auto it = q.begin(); it != q.end(); it++) p.push_back(*it);
  for (long long i = 0; i < p.size(); i++) {
    for (long long j = 0; j < p.size(); j++) {
      for (long long x = 0; x < p.size(); x++) {
        for (long long y = 0; y < p.size(); y++) {
          if (i != j && i != x && i != y && j != x && j != y && x != y) {
            tmp = dis(p[i], p[j]) + dis(p[j], p[x]) + dis(p[x], p[y]);
            if (tmp >= ans) {
              ans = tmp;
              res[1] = p[i];
              res[2] = p[j];
              res[3] = p[x];
              res[4] = p[y];
            }
          }
        }
      }
    }
  }
  for (long long i = 1; i <= 4; i++)
    cout << res[i].first << " " << res[i].second << '\n';
  return cout << "\n", 0;
}
