#include <stdio.h>

#define KONSTANTY 0x80000057
#define BITOV 32

unsigned int stav = 0x00000001;

int generuj()
{
	int tmp, vystup;
	
	if (stav & 0x01) vystup = 1;
	else vystup = 0;
	
	tmp = stav & KONSTANTY;
	tmp = (tmp >> 16) ^ tmp;
	tmp = (tmp >> 8) ^ tmp;
	tmp = (tmp >> 4) ^ tmp;
	tmp = (tmp >> 2) ^ tmp;
	tmp = (tmp >> 1) ^ tmp;
	
	if (tmp & 0x01) {
		stav = (stav >> 1) | (1 << (BITOV - 1));
	} else {
		stav = (stav >> 1);
	}
	
	return vystup;
}

int main(int argc, char * argv[])
{
	int i;

	for (i = 0; i < 20000; i++) printf("%d", generuj());

	return 0;
}
