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

#define BUFSIZE 100*1024

#define PRINTFOK printf("OK \t%s\t%s\n", (argc>1) ? argv[1] : "", buf );

int main( int argc, char **argv){
	long int i,n, len;
	char buf[BUFSIZE], *p;
	/*if( argc < 2 ) { 
		printf( "reads from stdin and writest oki or not at out\n" );
		return 0;
	};*/
	
	i=0;
	while( !feof(stdin) ){
		fgets( buf, BUFSIZE, stdin);
		++i;
	};
	len = strlen( buf );

	if( argc > 2) printf( "Ilosc lini w pliku to : %ld\n", i-1);
	
	//Usun ew. Enter na koncu
	if( strcmp( &( buf[len-1] ), "\n") == 0 ){
		buf[len-1] = '\0';
		len -= 1;
	};
	
	//printf("%s", buf);
	p = buf;
	for(; *p == 'A' || *p == '_' ; ++p); //przelatuje wzytkie A i przerwe 
	//Teraz powinno byæ albo B albo koniec
	if( *p == '\0' ){
		PRINTFOK;
		return 0;
	};
	for(; *p == 'B' || *p == '_' ; ++p); //przelatuje wszystkie B i przerwe
	//Teraz powinien byæ koniec.
	if( *p == '\0' ){
		PRINTFOK;
		return 0;
	};
	//Moze sa jakies spacje , entery itp. 
	//Ale NA PEWNO :   NIE MOZE BYC A
	for(; *p != '\0' && *p != 'A' ; ++p);
	//Teraz jest albo A albo koniec
	if( *p == '\0' ){
		PRINTFOK;
		return 0;
	};
	if( argc > 1 ){
		printf("FAIL: \t%s %s\n", argv[1], buf);
	} else {
		printf("FAIL: \t%s\n", buf);
	};
	return 0;
};
