#include <bits/stdc++.h>
using namespace std;
int main() {
  int W, H;
  while (cin >> W >> H) {
    vector<pair<int, int>> pset;
    for (int dy = 0; dy < (int)(2); ++dy)
      for (int dx = 0; dx < (int)(2); ++dx) {
        if (dx <= W && dy <= H) pset.push_back(pair<int, int>(dx, dy));
      }
    for (int dy = 0; dy < (int)(2); ++dy)
      for (int dx = 0; dx < (int)(2); ++dx) {
        if (dx <= W && H - dy >= 0) pset.push_back(pair<int, int>(dx, H - dy));
      }
    for (int dy = 0; dy < (int)(2); ++dy)
      for (int dx = 0; dx < (int)(2); ++dx) {
        if (W - dx >= 0 && dy <= H) pset.push_back(pair<int, int>(W - dx, dy));
      }
    for (int dy = 0; dy < (int)(2); ++dy)
      for (int dx = 0; dx < (int)(2); ++dx) {
        if (W - dx >= 0 && H - dy >= 0)
          pset.push_back(pair<int, int>(W - dx, H - dy));
      }
    sort(pset.begin(), pset.end());
    pset.erase(unique(pset.begin(), pset.end()), pset.end());
    vector<pair<double, vector<pair<int, int>>>> ans;
    for (int comb = (1 << 4) - 1; comb < (1 << pset.size());) {
      vector<pair<int, int>> ps;
      for (int i = 0; i < (int)(pset.size()); ++i)
        if (comb >> i & 1) {
          ps.push_back(pset[i]);
        }
      sort(ps.begin(), ps.end());
      do {
        double len = 0;
        for (int i = 0; i < (int)(3); ++i) {
          len += hypot(ps[i].first - ps[i + 1].first,
                       ps[i].second - ps[i + 1].second);
        }
        ans.push_back(make_pair(len, ps));
      } while (next_permutation(ps.begin(), ps.end()));
      int x = comb & -comb, y = comb + x;
      comb = ((comb & ~y) / x >> 1) | y;
    }
    sort(ans.begin(), ans.end());
    vector<pair<int, int>> ps = ans.back().second;
    for (int i = 0; i < (int)(4); ++i) {
      cout << ps[i].first << " " << ps[i].second << endl;
    }
  }
  return 0;
}
