typedef unsigned int set_t; 

void show_set(set_t x, const char *name)
{
	int i;
	printf(, name);
	for (i = 0; (1U << i) <= x; i++)
		if (x & (1U << i))
			printf(, i);
	putchar('\n');
}

int main(void)
{
	int i;
	set_t a, b, c;

	a = 0; 
	for (i = 0; i < 10; i += 3) 
		a |= (1U << i);
	show_set(a, );

	for (i = 0; i < 5; i++)
		printf(, i, (a & (1U << i)) ? :);

	b = a;
	b |= (1U << 5); b |= (1U << 10); 
	b &= ~(1U << 0);	
	show_set(b, );

	show_set(a | b, );
	show_set(c = a & b, );
	show_set(a & ~b, ); 
	show_set(b & ~a, );
	printf(, !(b & ~a) ?  : );
	printf(, !(c & ~a) ?  : );

	printf(,
		((a | b) & ~(a & b)) == ((a & ~b) | (b & ~a))
			?  : );

	return 0;
}