Problem: Little Victor adores the sets theory. Let us remind you that a set is a group of numbers where all numbers are pairwise distinct. Today Victor wants to find a set of integers S that has the following properties:

  * for all x <image> the following inequality holds l ≤ x ≤ r; 
  * 1 ≤ |S| ≤ k; 
  * lets denote the i-th element of the set S as si; value <image> must be as small as possible. 



Help Victor find the described set.

Input

The first line contains three space-separated integers l, r, k (1 ≤ l ≤ r ≤ 1012; 1 ≤ k ≤ min(106, r - l + 1)).

Output

Print the minimum possible value of f(S). Then print the cardinality of set |S|. Then print the elements of the set in any order.

If there are multiple optimal sets, you can print any of them.

Examples

Input

8 15 3


Output

1
2
10 11


Input

8 30 7


Output

0
5
14 9 28 11 16

Note

Operation <image> represents the operation of bitwise exclusive OR. In other words, it is the XOR operation.

Solution (in PYTHON):

Solution:


import sys





def numbers_of_one(n):
	res=0

	while n:
		if n&1:res+=1
		n>>=1
	return res




def brute_force(l,r,k):
	numbers=[i for i in range(l,r+1)]
	n=len(numbers)
	aux=r<<2
	res=[]
	# import ipdb;ipdb.set_trace()
	for subset in range(1,1<<(r-l+1)):
		if numbers_of_one(subset)<=k:
			tmp,tmp_l=0,[]
			for j in range(n):
				if 1<<j&subset:
					tmp^=numbers[j]
					tmp_l.append(numbers[j])
			if tmp<aux:
				aux=tmp
				res=tmp_l
	return aux,len(res),res







def main():

	inName=''
	outName=''
	if inName is not '' :
		sys.stdin=open(inName,'r')
	if outName is not '':
		sys.stdout=open(outName,'w')
	

	l,r,k=map(int,raw_input().strip().split())
	if r-l<5:
		sol=brute_force(l,r,k)
	else:
		if k==1:
			sol=(l,1,[l])
		if k==2:
			sol=(1,2,[l,l+1] if l%2==0 else [l+1,l+2])
		if k>=4:
			if l%2==1:l+=1			
			sol=(0,4,[l,l+1,l+2,l+3])
		if k==3:
			bl,br=bin(l),bin(r)
			szl,szr=len(bl)-2,len(br)-2	
			
			ispossible=False

			if szr>=szl+2:
				ispossible=True
			if szr==szl+1 and br[3]=='1':				
				ispossible=True

			if ispossible:
				aux=2**(szl)+2**(szl-1)
				sol=(0,3,[l,aux,l^aux])
			else:
				sol=(1,2,[l,l+1] if l%2==0 else [l+1,l+2])
	xor,count,numbers=sol
	print xor
	print count
	print " ".join(map(str,numbers))















	



main()