anchor.diff:  
   let data = download fileUrl
   let numbers = data |> Seq.map int |> List.ofSeq
  -
  -
  -// implementing this https://en.wikipedia.org/wiki/Longest_increasing_subsequence
  -let solve numbers = numbers
  -    // let generateList (numbers: int list) ((l, pred, smallest): int*Map<int,int>*Map<int,int>): int list =
  -    //     let rec internalGenerate (numbers: int list) index k acc =
  -    //         if index < 0 then acc
  -    //         else
  -    //             let acc' = (numbers.[k])::acc
  -    //             let k' = pred.[k]
  -    //             internalGenerate numbers (index - 1) k' acc'
  -    //     internalGenerate numbers (l-1) (smallest.[l]) []
  -
  -    // let rec internalSolve l (pred: Map<int, int>) (smallest: Map<int, int>) (numbers: int list) index =
  -    //     match numbers with
  -    //     | [] -> l, pred, smallest
  -    //     | currentValue::rest ->
  -    //         let newL = findLow currentValue 1 l smallest numbers
  -    //         let pred' = pred |> Map.add index (smallest |> Map.tryFind (newL - 1) |> Option.defaultValue 0)
  -    //         let smallest' = smallest |> Map.add newL index
  -    //         let l' = max newL l
  -    //         internalSolve l' pred' smallest' rest (index + 1)
  -    // and findLow currentValue low high smallest numbers =
  -    //     if low > high then low
  -    //     else
  -    //         let mid = (((low + high) |> float) / 2.) |> ceil |> int
  -    //         if numbers.[smallest.[mid]] < currentValue
  -    //         then findLow currentValue (mid+1) high smallest numbers
  -    //         else findLow currentValue mid (high-1) smallest numbers
  -
  -    // internalSolve 0 Map.empty Map.empty numbers 0 |> generateList numbers
  -
  -
  -// 1 ; 1,1
  -
  -// 1 ; 1,1
  -// 1, 1 ; 2,1
  -
  -// 1 ; 1,1
  -// 1, 1 ; 2,1
  -// 1, 1, 7 ; 3,7
  -
  -// 1 ; 1,1
  -// 1, 1 ; 2,1
  -// 1, 1, 7 ; 3,7
  -// 1, 1, 6 ; 3,6
   
   let solve2 input =
       let rec internalSolve acc input =
  
positive.code:             let k = predList.[k]
              buildRes k (index-1)
      buildRes (smallestList.[l]) l
  // // let result = numbers |> solve2
  let length = list.Length
  // printfn "%A" result
  #time
  // 1974
negative.code: 
      internalSolve 0 0 predList smallestList input
  
  let buildList l (predList: int[]) (smallestList: int[]) (numbers: int list) = 
      let res = Array.init l id
      let rec buildRes k index =
          if index = 0 then res
  