anchor.diff:              internalSolve acc rest 
       internalSolve [] input |> List.maxBy fst |> fst
   
  -let solve3 (input: int []) =
  +// implementing this https://en.wikipedia.org/wiki/Longest_increasing_subsequence
  +let solve (input: int []) =
       let rec findLow currentIndex low high (input: int []) (smallestList: int []) =
           if low > high then low
           else
               let mid = ceil (float(low + high)/2.) |> int
               let (low, high) = 
  -                if input.[smallestList.[mid]] < input.[currentIndex] 
  +                if input.[smallestList.[mid]] <= input.[currentIndex] 
                   then (mid+1, high) 
                   else (low, mid-1)
               findLow currentIndex low high input smallestList
  
positive.code: 
      internalSolve 0 0 predList smallestList input
  
  let example = [1; 1; 7; 5; 8; 9; 12; 11; 11; 13; 13; 12; 2; 3; 4; 4; 5; 6; 7; 8; 9; 10; 11; 12]
  let exampleBest = [1; 1; 5; 4; 7; 8]
  
  
  #time
  let (predList, smallestList, l) =
      numbers
      |> Array.ofList
      |> solve3
  let list =
      let res = Array.init l id
      let rec buildRes k index =
          if index = 0 then res
  
negative.code: 
  let data = download fileUrl
  let numbers = data |> Seq.map int |> List.ofSeq
  
  let solve2 input =
      let rec internalSolve acc input =
  