/**
 * x == 1 のとき足し算,
 * x == 2 のとき掛け算,
 * x == 3 のとき累乗計算をします.
 * ただし x, y, z は 0 より大きい整数です. 不適切な値の場合は -1 を返します.
 */
int superfunc(int x, int y, int z){
  if(x < 1 || y < 1 || z < 1) return -1;
  if(x == 1) return y + z;
  if(z == 2) return superfunc(x-1, y, y);
  return superfunc(x-1, superfunc(x, y, z-1), y);
}