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

char lok1[1000000], lok2[1000000];
char lout1[1000000], lout2[1000000];

void error(char msg[], int p) {
  fprintf(stderr, msg);
  printf("%d", p);
  exit(0);
}

void bun(int p) {
  fprintf( stderr, "OK\n" );
  printf("%d", p);
  exit(0);
}

int main() {
  FILE *fok, *fout;
  int n, ncf, i;
  char cifre[10];

  fok = fopen( "cifre1.ok", "r" );
  fgets( lok1, 1000000, fok );
  fgets( lok2, 1000000, fok );
  fclose( fok );

  fout = fopen( "cifre1.out", "r" );
  if(!fout)
    error("Fisier de iesire 'cifre1.out' lipsa!", 0);
  if ( fgets( lout1, 1000000, fout ) == NULL )
    error("Fisier de iesire 'cifre1.out' gol!", 0);

  // extrage cifrele din prima linie a fisierului .ok
  i = ncf = 0;
  while ( lok1[i] ) {
    if ( lok1[i] != ' ' && lok1[i] != '\n' && lok1[i] != '\t' )
      cifre[ncf++] = lok1[i];
    i++;
  }

  // extrage cifrele din prima linie a fisierului .out
  // si verifica ca sint la fel cu cele din .ok
  i = n = 0;
  while ( lout1[i] == ' ' || lout1[i] == '\n' || lout1[i] == '\t' )
    i++;
  if ( ncf > 0 ) {
    while ( lout1[i] ) {
      if ( n >= ncf )
        error( "Raspuns incorect la punctul (a)", 0 );
      if ( lout1[i] == cifre[n] )
        n++;
      else
        lout1[i] = 0;
      if ( lout1[i] )
        i++;
      while ( lout1[i] == ' ' || lout1[i] == '\n' || lout1[i] == '\t' )
        i++;
    }
    if ( n != ncf ) {
      error( "Raspuns incorect la punctul (a)", 0 );
    }
  } else {
    if ( (lout1[i] != '-' || lout1[i+1] != '1') && (lout1[i] != 0) )
      error( "Raspuns incorect la punctul (a)", 0 );
  }

  // trecem la punctul b: comparam caracter cu caracter cifrele din 
  // lok2 cu lout2
  if ( fgets( lout2, 1000000, fout ) == NULL )
    error("A doua linie din 'cifre1.out' goala!", 5);
  fclose( fout );
  i = 0;
  while ( lok2[i] >= '0' && lok2[i] <= '9' &&
          lout2[i] >= '0' && lout2[i] <= '9' ) {
    if ( lok2[i] != lout2[i] )
      error( "Raspuns incorect la punctul (b)", 5 );
    i++;
  }
  // daca vreuna din linii mai contine o cifra, eroare
  if ( (lok2[i] >= '0' && lok2[i] <= '9') || 
       (lout2[i] >= '0' && lout2[i] <= '9') )
    error( "Raspuns incorect la punctul (b)", 5 );
  if ( lout2[i] != '\n' && lout2[i] != 0 )
    error( "Raspuns incorect la punctul (b)", 5 );

  bun(10);


  return 0;
}
