
int a, b, z;
int c(int d, int e) { return d && e > 0 && d > 5 - e ? 0 : d + e; }
int k();
void h(int);
void f(short d) {
  int g = !(0 < d);
  h(d);
  if (b) {
    unsigned i[1];
    i[0] = g = 0;
    for (; g <= 8; g++)
      d || k();
    if (c(!(i[0] <= z) >= d, d) != a)
      k();
  }
}

