def fseq(num):
	stktr = [False]*num
	n = num-1
	while n < num:
		if n == 0:
			stktr[0] = True
			n += 1
			yield 0
		else:
			if stktr[n-1] == True:
				if stktr[n] == True:
					stktr[n-1] = False
					n += 1
				else:
					stktr[n-1] = False
					stktr[n] = True
					yield n
					n -= 1
			else:
				if stktr[n] == True:
					stktr[n-1] = True
					n -= 1
				else:
					n -= 1

def fseqrecur(n):
	if n == 0:
		print 0
	else:
		fseqrecur(n-1)
		print n
		fseqrecur(n-1)


for n in fseq(3): print n

fseqrecur(3)
