#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-7;
int n, m;
bool isgood(int x, int y) {
  return (x >= 0) && (y >= 0) && (x <= n) && (y <= m);
}
double dist(const pair<int, int> &a, const pair<int, int> &b) {
  return sqrt((a.first - b.first) * (a.first - b.first) +
              (a.second - b.second) * (a.second - b.second));
}
int main() {
  cin >> n >> m;
  vector<pair<int, int> > v;
  for (int i = 0; i <= 4; ++i) {
    pair<int, int> a = make_pair(0, i);
    if (isgood(a.first, a.second)) v.push_back(a);
    a = make_pair(i, 0);
    if (isgood(a.first, a.second)) v.push_back(a);
    a = make_pair(n, m - i);
    if (isgood(a.first, a.second)) v.push_back(a);
    a = make_pair(n - i, m);
    if (isgood(a.first, a.second)) v.push_back(a);
  }
  int r1, r2, r3, r4;
  double res = -1;
  for (int i1 = 0; i1 < v.size(); ++i1)
    for (int i2 = 0; i2 < v.size(); ++i2)
      for (int i3 = 0; i3 < v.size(); ++i3)
        for (int i4 = 0; i4 < v.size(); ++i4)
          if (v[i1] != v[i2] && v[i1] != v[i3] && v[i1] != v[i4] &&
              v[i2] != v[i3] && v[i2] != v[i4] && v[i3] != v[i4]) {
            double tmp =
                dist(v[i1], v[i2]) + dist(v[i2], v[i3]) + dist(v[i3], v[i4]);
            if (tmp - res > eps) {
              res = tmp;
              r1 = i1;
              r2 = i2;
              r3 = i3;
              r4 = i4;
            }
          }
  cout << v[r1].first << " " << v[r1].second << "\n";
  cout << v[r2].first << " " << v[r2].second << "\n";
  cout << v[r3].first << " " << v[r3].second << "\n";
  cout << v[r4].first << " " << v[r4].second << "\n";
  return 0;
}
