int assert(int x) {
  if (x == 0) return 42;
  return assert(x-1) + 1;
}

int break(int x) {
  if (x == 0) return 42;
  return break(x-1) + 1;
}

int case(int x) {
  if (x == 0) return 42;
  return case(x-1) + 1;
}

int catch(int x) {
  if (x == 0) return 42;
  return catch(x-1) + 1;
}

int class(int x) {
  if (x == 0) return 42;
  return class(x-1) + 1;
}

int const(int x) {
  if (x == 0) return 42;
  return const(x-1) + 1;
}

int continue(int x) {
  if (x == 0) return 42;
  return continue(x-1) + 1;
}

int default(int x) {
  if (x == 0) return 42;
  return default(x-1) + 1;
}

int do(int x) {
  if (x == 0) return 42;
  return do(x-1) + 1;
}

int else(int x) {
  if (x == 0) return 42;
  return else(x-1) + 1;
}

int enum(int x) {
  if (x == 0) return 42;
  return enum(x-1) + 1;
}

int extends(int x) {
  if (x == 0) return 42;
  return extends(x-1) + 1;
}

int false(int x) {
  if (x == 0) return 42;
  return false(x-1) + 1;
}

int final(int x) {
  if (x == 0) return 42;
  return final(x-1) + 1;
}

int finally(int x) {
  if (x == 0) return 42;
  return finally(x-1) + 1;
}

int for(int x) {
  if (x == 0) return 42;
  return for(x-1) + 1;
}

int if(int x) {
  if (x == 0) return 42;
  return if(x-1) + 1;
}

int in(int x) {
  if (x == 0) return 42;
  return in(x-1) + 1;
}

int is(int x) {
  if (x == 0) return 42;
  return is(x-1) + 1;
}

int new(int x) {
  if (x == 0) return 42;
  return new(x-1) + 1;
}

int null(int x) {
  if (x == 0) return 42;
  return null(x-1) + 1;
}

int rethrow(int x) {
  if (x == 0) return 42;
  return rethrow(x-1) + 1;
}

int return(int x) {
  if (x == 0) return 42;
  return return(x-1) + 1;
}

int super(int x) {
  if (x == 0) return 42;
  return super(x-1) + 1;
}

int switch(int x) {
  if (x == 0) return 42;
  return switch(x-1) + 1;
}

int this(int x) {
  if (x == 0) return 42;
  return this(x-1) + 1;
}

int throw(int x) {
  if (x == 0) return 42;
  return throw(x-1) + 1;
}

int true(int x) {
  if (x == 0) return 42;
  return true(x-1) + 1;
}

int try(int x) {
  if (x == 0) return 42;
  return try(x-1) + 1;
}

int var(int x) {
  if (x == 0) return 42;
  return var(x-1) + 1;
}

int void(int x) {
  if (x == 0) return 42;
  return void(x-1) + 1;
}

int while(int x) {
  if (x == 0) return 42;
  return while(x-1) + 1;
}

int with(int x) {
  if (x == 0) return 42;
  return with(x-1) + 1;
}
