#include <stdio.h>
#include <stdlib.h>

cilk long bin(int n) {
  if (n == 0) return 1;
  else {
    long x, y;
    x = spawn bin(n - 1);
    y = spawn bin(n - 1);
    sync;
    return x + y;
  }
}

cilk int main(int argc, char ** argv) {
  int n = atoi(argv[1]);
  long x;
  x = spawn bin(n);
  sync;
  printf("bin(%d) = %ld\n", n, x);
  return 0;
}
