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

void error(char *msg) {
  fprintf(stderr, "%s\n", msg);
  exit(1);
}

void next_patch_line(int *offset, int *old_v, int *new_v) {
  if (scanf("%d%d%d", offset, old_v, new_v) != 3)
    *offset = -1;
}

int main(int argc, char *argv[]) {
  FILE *fp1, *fp2;
  int i, c;
  int offset, old_v, new_v;

  if (argc < 3)
    error("no args");

  fp1 = fopen(argv[1], "rb");
  if (!fp1) error("cannot open the input file");
  fp2 = fopen(argv[2], "wb");
  if (!fp2) error("cannot open the output file");

  i = 0;
  next_patch_line(&offset, &old_v, &new_v);

  while ((c = fgetc(fp1)) != EOF) {
    if (i == offset) {
      if (c != old_v)
	error("wrong input file");
      c = new_v;
      next_patch_line(&offset, &old_v, &new_v);
    }
    fputc(c, fp2);
    i++;
  }
  return 0;
}
