function orderNum(arr, num) {
	let i = arr.length - 2;
  let temp;
	
  if (arr[i] < num) {
  	return arr;
  }
  
  while (arr[i] > num) {
  	temp = arr[i];
    arr[i] = num;
    arr[i + 1] = temp;
    
//  	if (arr[i] === num) {
//    	arr.splice(arr[i], 1);
//    	break;
//    }
    i -= 1;
  }
  
  return arr;
}

function dblLinear(n) {
	let result = [1];
  
	for (let i = 0; i <= n; i++) {
  	const x = result[i];
  	const y = 2 * x + 1;
    const z = 3 * x + 1;
    
    if (result[result.length - 1] !== y) {
      result.push(y);
      result = orderNum(result, y);
    }
    if (result[result.length - 1] !== z) {
      result.push(z);
      result = orderNum(result, z);
    }
  }
  
  result = result.filter((num, pos) => result.indexOf(num) === pos);
  
  return result[n];
}