source_code: import java.io.IOException;
  import java.io.InputStream;
  import java.io.PrintWriter;
  import java.util.InputMismatchException;
  
  public class _v14 {
  
      public static void main(String args[]){
  
          PrintWriter out = new PrintWriter(System.out);
          Reader in = new Reader();
          long k = in.nextLong();
          if(k<10){
              System.out.println(k);
              return;
          }
          long sum = 0;
          long cur = 9;
          long prev = 0;
          int count = 1;
          while(k>cur){
              k= k - cur;
              sum  = sum + cur/count;
              prev = cur;
              cur = 9*(count+1)*(long)Math.pow(10,count);
              count++;
          }
  
          long num = k/(count);
          sum = sum + num;
  
          if(k%count == 0){
              System.out.println(sum%10);
          }
          else{
              sum++;
              k = k%(count);
              String str = String.valueOf(sum);
              System.out.println(str.charAt((int)k-1));
          }
  
  
  
  
  
  
          out.flush();
          out.close();
      }
      static class Reader {
  
          private InputStream mIs;
          private byte[] buf = new byte[1024];
          private int curChar;
          private int numChars;
  
          public Reader() {
              this(System.in);
          }
  
          public Reader(InputStream is) {
              mIs = is;
          }
  
          public int read() {
              if (numChars == -1) {
                  throw new InputMismatchException();
  
              }
              if (curChar >= numChars) {
                  curChar = 0;
                  try {
                      numChars = mIs.read(buf);
                  } catch (IOException e) {
                      throw new InputMismatchException();
                  }
                  if (numChars <= 0) {
                      return -1;
                  }
              }
              return buf[curChar++];
          }
  
          public String nextLine() {
              int c = read();
              while (isSpaceChar(c)) {
                  c = read();
              }
              StringBuilder res = new StringBuilder();
              do {
                  res.appendCodePoint(c);
                  c = read();
              } while (!isEndOfLine(c));
              return res.toString();
          }
  
          public String next() {
              int c = read();
              while (isSpaceChar(c)) {
                  c = read();
              }
              StringBuilder res = new StringBuilder();
              do {
                  res.appendCodePoint(c);
                  c = read();
              } while (!isSpaceChar(c));
              return res.toString();
          }
  
          double nextDouble()
          {
              return Double.parseDouble(next());
          }
  
          public long nextLong() {
              int c = read();
              while (isSpaceChar(c)) {
                  c = read();
              }
              int sgn = 1;
              if (c == '-') {
                  sgn = -1;
                  c = read();
              }
              long res = 0;
              do {
                  if (c < '0' || c > '9') {
                      throw new InputMismatchException();
                  }
                  res *= 10;
                  res += c - '0';
                  c = read();
              } while (!isSpaceChar(c));
              return res * sgn;
          }
  
          public int nextInt() {
              int c = read();
              while (isSpaceChar(c)) {
                  c = read();
              }
              int sgn = 1;
              if (c == '-') {
                  sgn = -1;
                  c = read();
              }
              int res = 0;
              do {
                  if (c < '0' || c > '9') {
                      throw new InputMismatchException();
                  }
                  res *= 10;
                  res += c - '0';
                  c = read();
              } while (!isSpaceChar(c));
              return res * sgn;
          }
  
          public boolean isSpaceChar(int c) {
              return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
          }
  
          public boolean isEndOfLine(int c) {
              return c == '\n' || c == '\r' || c == -1;
          }
  
      }
  
  }
  