private static Node merge(Node first, Node second){
		Node h = null;
		Node curr = h;
		while(first!=null && second!=null){
			Node chosen = null;
			if(first.v <= second.v){
				chosen=first;
				first=first.next;
			}else{
				chosen=second;
				second=second.next;
			}
			if(h==null){
				h = chosen;
				curr = h;
				curr.next = null;
			}else{
				curr.next = chosen;
				curr.next.next = null;
				curr = curr.next;
			}
		}
		if(first!=null){
			curr.next = first;
		}else if(second!=null){
			curr.next = second;
		}
		return h;
	}