#include <bits/stdc++.h>
using namespace std;
void FastIO() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
}
long long modpow(long long a, long long p, long long mod) {
  long long ret = 1;
  while (p) {
    if (p & 1) ret = (ret * a) % mod;
    a = (a * a) % mod;
    p /= 2;
  }
  return ret;
}
long long power(long long a, long long p) {
  long long ret = 1;
  while (p) {
    if (p & 1) ret = (ret * a);
    a = (a * a);
    p /= 2;
  }
  return ret;
}
int n, m;
int mx = 0;
pair<int, int> p[4];
vector<pair<int, int> > vec;
int dist(pair<int, int> a, pair<int, int> b) {
  return (a.first - b.first) * (a.first - b.first) +
         (a.second - b.second) * (a.second - b.second);
}
void check(int x, int y) {
  if (x < 0 || x > n || y < 0 || y > m) return;
  vec.push_back(make_pair(x, y));
}
int main() {
  FastIO();
  cin >> n >> m;
  check(0, 0);
  check(0, 1);
  check(1, 0);
  check(1, 1);
  check(0, m);
  check(0, m - 1);
  check(1, m);
  check(1, m - 1);
  check(n, 0);
  check(n - 1, 0);
  check(n, 1);
  check(n - 1, 1);
  check(n, m);
  check(n - 1, m);
  check(n, m - 1);
  check(n - 1, m - 1);
  int sz = (int)(vec.size());
  for (int i = 0; i < sz; i++)
    for (int j = 0; j < sz; j++)
      for (int k = 0; k < sz; k++)
        for (int l = 0; l < sz; l++) {
          if (vec[i] == vec[j] || vec[i] == vec[k] || vec[i] == vec[l])
            continue;
          if (vec[j] == vec[k] || vec[j] == vec[l] || vec[k] == vec[l])
            continue;
          int tot = dist(vec[i], vec[j]) + dist(vec[j], vec[k]) +
                    dist(vec[k], vec[l]);
          if (tot > mx) {
            mx = tot;
            p[0] = vec[i];
            p[1] = vec[j];
            p[2] = vec[k];
            p[3] = vec[l];
          }
        }
  for (int i = 0; i < 4; i++) cout << p[i].first << " " << p[i].second << '\n';
  return 0;
}
