#include <stdio.h>
#include <stdint.h>

int main(int argc, char **argv)
{
	uint16_t poly;
	uint16_t lfsr = 1;
	uint16_t period = 0;

	if (argc > 1) { poly = (uint16_t) strtoul(argv[1],NULL,0); }
	else { poly = 0xb400; }


	do {
		lfsr = (lfsr >> 1) ^ (-(lfsr & 1u) & poly);
		printf("%d\n",lfsr);
	} while (lfsr != 1u);
}

