struct rec {
  int a[3];
  int i;
  struct rec *next;
};

void set_i(struct rec *r, int val)
 {
   r->i = val;
 }

int *get_ap(struct rec *r, int idx)
{
  return &r->a[idx];
}

int check_val(struct rec *r, int val) {
  int found = 0;
  while (!found && r) {
    int i = r->i;
    if (r->a[i] == val)
      found = 1;
    else
      r = r->next;
  }
  return found;
}

void set_val(struct rec *r, int val) {
  while (r) {
    int i = r->i;
    r->a[i] = val;
    r = r->next;
  }
}

