#include <stdio.h>

int weight(int a){
	int r = 0;
	while(a){
		a &= (a-1);
		++r;
	}
	return r;
}

int LFSR(){
	static unsigned long ShiftRegister = 1;
	
	ShiftRegister = (((((ShiftRegister >> 31)
					^(ShiftRegister >> 6)
					^(ShiftRegister >> 4)
					^(ShiftRegister >> 2)
					^(ShiftRegister >> 1)
					^ShiftRegister))
					& 0x00000001) << 31)
					| (ShiftRegister >> 1);
	return ShiftRegister & 0x00000001;
}

void main(void){
	int a = 7;
	int c = weight(a);
	printf("%d\n", c);
	
	int i;
	for(i = 0; i < 8; i++)
		printf("%d ", LFSR());
	scanf("%d", &a);
}