#include <stdlib.h>
#include <iostream>

int mystery1(int &a, int *b, int c) {
  a++;
  (*b)--;
  c = a + *b;
  return c;
}

int main(int argc, char **argv) {
  int w = 0, x = 1;
  int &y = x;
  int *z = &x;

  *z = mystery1(w, &x,
                mystery1(*z, &w, x));

  std::cout << w << " " << x << " " << y << " " << *z << std::endl;
  return 0;
}