object Main extends App {
  val str = io.StdIn.readLine()
  val index = io.StdIn.readInt

  val mrInfinity = new MrInfinity
  println(mrInfinity.superBrain(str, index))
}

class MrInfinity {
  /**
    * 500兆回処理を繰り返してできた文字列の、左からindex番目の値を返却する。
    * @str 捜査対象の文字列(1~9の数値で構成されている)
    * @index 検査位置
    * @return 左からindex番目にある値（0からでなく、1から開始）
    */
  def superBrain(str: String, index: Long): Char = {
    // 与えられた条件から、実際に5000兆回処理する必要はない。
    // indexより左に1しかない場合には何回処理をしても1になることが明確なので1を返却する。
    // 1以外の数値の場合、2の5000兆乗が優にindexの条件である10^18を越えるため、
    // 一番最初に出てきた数字でindexまでが埋め尽くされることになる。
    // ex) "21"の場合、2が2の5000兆乗個/1が1個となり、indexの最大値である10^18番目は2となる。
    //
    // 従って、以下の条件で返却値を決める。
    //   indexまでに1しかない場合 -> 1を返却
    //   1以外の値がある場合 -> 一番左にある1以外の値
    
    if (index == 1 || str.length == 1) str.head
    else {
      str.head match {
        case '1' => superBrain(str.tail, index - 1)
        case _   => str.head
      }
    }
  }
  
}
