source_code: import java.io.BufferedReader;
  import java.io.File;
  import java.io.FileNotFoundException;
  import java.io.FileReader;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.io.OutputStream;
  import java.io.PrintWriter;
  import java.util.ArrayList;
  import java.util.Arrays;
  import java.util.Collection;
  import java.util.Collections;
  import java.util.HashMap;
  import java.util.HashSet;
  import java.util.LinkedList;
  import java.util.List;
  import java.util.Map;
  import java.util.Set;
  import java.util.StringTokenizer;
  import java.util.TreeMap;
  import java.util.TreeSet;
  
  
  public class Main {
  
  	static class Task {
  		
  		int NN = 1000001;
  		int MOD = 1000000007;
  		int INF = 2000000000;
  		long INFINITY = 2000000000000000000L;
  
  		public void solve(InputReader in, PrintWriter out) {
  			long k = in.nextLong();
  			for(long mul = 1,d=1;;mul*=10,++d) {
  				if(k > 9*mul*d) {
  					k -= 9*mul*d;
  				} else {
  					for(long i=1;i<=9;++i) {
  						if(k > mul*d) {
  							k -= mul*d;
  						} else {
  							--k;
  							long num = k / d;
  							k %= d;
  							String str = String.valueOf(num);
  							while(str.length() < d - 1) {
  								str = "0" + str;
  							}
  							str = String.valueOf(i) + str;
  							out.println(str.charAt((int) k));return;
  						}
  					}
  				}
  			}
  		}
  		
  	}
  	
  	static void prepareIO(boolean isFileIO) {
  		//long t1 = System.currentTimeMillis();
  		Task solver = new Task();
  		// Standard IO
  		if(!isFileIO) { 
  			InputStream inputStream = System.in;
  	        OutputStream outputStream = System.out;
  	        InputReader in = new InputReader(inputStream);
  	        PrintWriter out = new PrintWriter(outputStream);
  	        solver.solve(in, out);
  	        //out.println("time(s): " + (1.0*(System.currentTimeMillis()-t1))/1000.0);
  	        out.close();
  		}
          // File IO
  		else {
  			String IPfilePath = System.getProperty("user.home") + "/Downloads/ip.in";
  	        String OPfilePath = System.getProperty("user.home") + "/Downloads/op.out";
  	        InputReader fin = new InputReader(IPfilePath);
  	        PrintWriter fout = null;
  	        try {
  				fout = new PrintWriter(new File(OPfilePath));
  			} catch (FileNotFoundException e) {
  				e.printStackTrace();
  			}
  	        solver.solve(fin, fout);
  	        //fout.println("time(s): " + (1.0*(System.currentTimeMillis()-t1))/1000.0);
  	        fout.close();
  		}
  	}
  	
  	public static void main(String[] args) {
          prepareIO(false);
  	}
  	
  	static class InputReader {
          public BufferedReader reader;
          public StringTokenizer tokenizer;
  
          public InputReader(InputStream stream) {
              reader = new BufferedReader(new InputStreamReader(stream), 32768);
              tokenizer = null;
          }
          
          public InputReader(String filePath) {
          	File file = new File(filePath);
              try {
  				reader = new BufferedReader(new FileReader(file));
  			} catch (FileNotFoundException e) {
  				// TODO Auto-generated catch block
  				e.printStackTrace();
  			}
              tokenizer = null;
          }
          
          public String nextLine() {
          	String str = "";
          	try {
  				str = reader.readLine();
  			} catch (IOException e) {
  				// TODO Auto-generated catch block
  				e.printStackTrace();
  			}
          	return str;
          }
          
          public String next() {
              while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                  try {
                      tokenizer = new StringTokenizer(reader.readLine());
                  } catch (IOException e) {
                      throw new RuntimeException(e);
                  }
              }
              return tokenizer.nextToken();
          }
  
          public int nextInt() {
              return Integer.parseInt(next());
          }
  
          public long nextLong() {
              return Long.parseLong(next());
          }
  
          public double nextDouble() {
          	return Double.parseDouble(next());
          }
          
      }
  
  }