let (?>) x y = Char.GetNumericValue(x) > Char.GetNumericValue(y)
let rec check (list:string) (j:int) (len:int) =
if list.[j] ?> list.[j+len] then false
else check list (j+1) (len / 2)
let rec func (input:string) (length:int) =
if check input 0 length then
let s1 = input.Remove(length, length)
let s2 = input.Remove(0, length)
(func s1 nlng) && (func s2 nlng)