let scan1 f = stdin.ReadLine() |> f
let scan2 f = stdin.ReadLine().Split() |> Array.map f |> (fun a -> (a.[0], a.[1]))
let scan3 f = stdin.ReadLine().Split() |> Array.map f |> (fun a -> (a.[0], a.[1], a.[2]))

let s = scan1 string
let k = scan1 int64 // 18桁らしいので収まる

// '1' でない最初のインデックス i? が k よりおおきいなら 1 が答えになる
// そうでないなら i? に格納されている数が答えになる

let xs = s.ToCharArray()

xs
|> Array.tryFindIndex ((<>) '1')
|> function
   | None -> printfn "1" // Sが全て1で構成されている
   | Some i -> if (int64 i) > k
                 then printfn "1" // 後ろの方にあるので 1 が答え
                 else printfn "%c" xs.[i]
