import java.io.*;
import java.lang.*;
import java.util.*;

public class Main
{
	public static void main(String[] args) throws Exception
	{
		Reader reader = new Reader();
      	int n = reader.nextInt();
      	int k = reader.nextInt();
		OutputStream out = new BufferedOutputStream(System.out);
		out.write((""+ fromDeci(k, n).length()).getBytes());
		out.flush();
	}
    static char reVal(int num) 
    { 
        if (num >= 0 && num <= 9) 
            return (char)(num + 48); 
        else
            return (char)(num - 10 + 65); 
    } 

    // Function to convert a given decimal number 
    // to a base 'base' and 
    static String fromDeci(int base1, int inputNum) 
    { 
        String s = ""; 

        // Convert input number is given 
        // base by repeatedly dividing it 
        // by base and taking remainder 
        while (inputNum > 0) 
        { 
            s += reVal(inputNum % base1); 
            inputNum /= base1; 
        } 
        StringBuilder ix = new StringBuilder(); 

            // append a string into StringBuilder input1 
            ix.append(s); 

        // Reverse the result 
        return new String(ix.reverse()); 
    } 

	static class Reader {
        final private int BUFFER_SIZE = 1 << 16;
        private DataInputStream din;
        private byte[] buffer;
        private int bufferPointer, bytesRead;
        public Reader() {
            din = new DataInputStream(System.in);
            buffer = new byte[BUFFER_SIZE];
            bufferPointer = bytesRead = 0;
        }
        public int nextInt() throws IOException {
            int ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }
        public long nextLong() throws IOException {
            long ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }

        private void fillBuffer() throws IOException
        {
            bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
            if (bytesRead == -1) {
                buffer[0] = -1;
            }
        }

        private byte read() throws IOException
        {
            if (bufferPointer == bytesRead) {
                fillBuffer();
            }
            return buffer[bufferPointer++];
        }
    }
} import java.io.*; io.* java import java.lang.*; lang.* java import java.util.*; util.* java public class Main
{
	public static void main(String[] args) throws Exception
	{
		Reader reader = new Reader();
      	int n = reader.nextInt();
      	int k = reader.nextInt();
		OutputStream out = new BufferedOutputStream(System.out);
		out.write((""+ fromDeci(k, n).length()).getBytes());
		out.flush();
	}
    static char reVal(int num) 
    { 
        if (num >= 0 && num <= 9) 
            return (char)(num + 48); 
        else
            return (char)(num - 10 + 65); 
    } 

    // Function to convert a given decimal number 
    // to a base 'base' and 
    static String fromDeci(int base1, int inputNum) 
    { 
        String s = ""; 

        // Convert input number is given 
        // base by repeatedly dividing it 
        // by base and taking remainder 
        while (inputNum > 0) 
        { 
            s += reVal(inputNum % base1); 
            inputNum /= base1; 
        } 
        StringBuilder ix = new StringBuilder(); 

            // append a string into StringBuilder input1 
            ix.append(s); 

        // Reverse the result 
        return new String(ix.reverse()); 
    } 

	static class Reader {
        final private int BUFFER_SIZE = 1 << 16;
        private DataInputStream din;
        private byte[] buffer;
        private int bufferPointer, bytesRead;
        public Reader() {
            din = new DataInputStream(System.in);
            buffer = new byte[BUFFER_SIZE];
            bufferPointer = bytesRead = 0;
        }
        public int nextInt() throws IOException {
            int ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }
        public long nextLong() throws IOException {
            long ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }

        private void fillBuffer() throws IOException
        {
            bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
            if (bytesRead == -1) {
                buffer[0] = -1;
            }
        }

        private byte read() throws IOException
        {
            if (bufferPointer == bytesRead) {
                fillBuffer();
            }
            return buffer[bufferPointer++];
        }
    }
} Main public static void main(String[] args) throws Exception
	{
		Reader reader = new Reader();
      	int n = reader.nextInt();
      	int k = reader.nextInt();
		OutputStream out = new BufferedOutputStream(System.out);
		out.write((""+ fromDeci(k, n).length()).getBytes());
		out.flush();
	} main {
		Reader reader = new Reader();
      	int n = reader.nextInt();
      	int k = reader.nextInt();
		OutputStream out = new BufferedOutputStream(System.out);
		out.write((""+ fromDeci(k, n).length()).getBytes());
		out.flush();
	} Reader reader = new Reader(); reader new Reader() int n = reader.nextInt(); n reader.nextInt() reader.nextInt reader int k = reader.nextInt(); k reader.nextInt() reader.nextInt reader OutputStream out = new BufferedOutputStream(System.out); out new BufferedOutputStream(System.out) out.write((""+ fromDeci(k, n).length()).getBytes()) out.write out (""+ fromDeci(k, n).length()).getBytes() (""+ fromDeci(k, n).length()).getBytes (""+ fromDeci(k, n).length()) "" fromDeci(k, n).length() fromDeci(k, n).length fromDeci(k, n) fromDeci k n out.flush() out.flush out String[] args args static char reVal(int num) 
    { 
        if (num >= 0 && num <= 9) 
            return (char)(num + 48); 
        else
            return (char)(num - 10 + 65); 
    } reVal { 
        if (num >= 0 && num <= 9) 
            return (char)(num + 48); 
        else
            return (char)(num - 10 + 65); 
    } if (num >= 0 && num <= 9) 
            return (char)(num + 48); 
        else
            return (char)(num - 10 + 65); num >= 0 && num <= 9 num >= 0 num 0 num <= 9 num 9 return (char)(num + 48); (char)(num + 48) num 48 return (char)(num - 10 + 65); (char)(num - 10 + 65) num - 10 num 10 65 int num num // Function to convert a given decimal number 
    // to a base 'base' and 
    static String fromDeci(int base1, int inputNum) 
    { 
        String s = ""; 

        // Convert input number is given 
        // base by repeatedly dividing it 
        // by base and taking remainder 
        while (inputNum > 0) 
        { 
            s += reVal(inputNum % base1); 
            inputNum /= base1; 
        } 
        StringBuilder ix = new StringBuilder(); 

            // append a string into StringBuilder input1 
            ix.append(s); 

        // Reverse the result 
        return new String(ix.reverse()); 
    } fromDeci { 
        String s = ""; 

        // Convert input number is given 
        // base by repeatedly dividing it 
        // by base and taking remainder 
        while (inputNum > 0) 
        { 
            s += reVal(inputNum % base1); 
            inputNum /= base1; 
        } 
        StringBuilder ix = new StringBuilder(); 

            // append a string into StringBuilder input1 
            ix.append(s); 

        // Reverse the result 
        return new String(ix.reverse()); 
    } String s = ""; s "" while (inputNum > 0) 
        { 
            s += reVal(inputNum % base1); 
            inputNum /= base1; 
        } inputNum > 0 inputNum 0 { 
            s += reVal(inputNum % base1); 
            inputNum /= base1; 
        } s += reVal(inputNum % base1) s reVal(inputNum % base1) reVal inputNum % base1 inputNum base1 inputNum /= base1 inputNum base1 StringBuilder ix = new StringBuilder(); ix new StringBuilder() ix.append(s) ix.append ix s return new String(ix.reverse()); new String(ix.reverse()) int base1 base1 int inputNum inputNum static class Reader {
        final private int BUFFER_SIZE = 1 << 16;
        private DataInputStream din;
        private byte[] buffer;
        private int bufferPointer, bytesRead;
        public Reader() {
            din = new DataInputStream(System.in);
            buffer = new byte[BUFFER_SIZE];
            bufferPointer = bytesRead = 0;
        }
        public int nextInt() throws IOException {
            int ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }
        public long nextLong() throws IOException {
            long ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }

        private void fillBuffer() throws IOException
        {
            bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
            if (bytesRead == -1) {
                buffer[0] = -1;
            }
        }

        private byte read() throws IOException
        {
            if (bufferPointer == bytesRead) {
                fillBuffer();
            }
            return buffer[bufferPointer++];
        }
    } Reader final private int BUFFER_SIZE = 1 << 16; BUFFER_SIZE 1 << 16 1 16 private DataInputStream din; din private byte[] buffer; buffer private int bufferPointer bufferPointer bytesRead; bytesRead public Reader() {
            din = new DataInputStream(System.in);
            buffer = new byte[BUFFER_SIZE];
            bufferPointer = bytesRead = 0;
        } Reader {
            din = new DataInputStream(System.in);
            buffer = new byte[BUFFER_SIZE];
            bufferPointer = bytesRead = 0;
        } din = new DataInputStream(System.in) din new DataInputStream(System.in) buffer = new byte[BUFFER_SIZE] buffer new byte[BUFFER_SIZE] BUFFER_SIZE bufferPointer = bytesRead = 0 bufferPointer bytesRead = 0 bytesRead 0 public int nextInt() throws IOException {
            int ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        } nextInt {
            int ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        } int ret = 0; ret 0 byte c = read(); c read() read while (c <= ' ') {
                c = read();
            } c <= ' ' c ' ' {
                c = read();
            } c = read() c read() read do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9'); (c = read()) >= '0' && c <= '9' (c = read()) >= '0' (c = read()) c read() read '0' c <= '9' c '9' {
                ret = ret * 10 + c - '0';
            } ret = ret * 10 + c - '0' ret ret * 10 + c - '0' ret * 10 + c ret * 10 ret 10 c '0' return ret; ret public long nextLong() throws IOException {
            long ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        } nextLong {
            long ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        } long ret = 0; ret 0 byte c = read(); c read() read while (c <= ' ') {
                c = read();
            } c <= ' ' c ' ' {
                c = read();
            } c = read() c read() read do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9'); (c = read()) >= '0' && c <= '9' (c = read()) >= '0' (c = read()) c read() read '0' c <= '9' c '9' {
                ret = ret * 10 + c - '0';
            } ret = ret * 10 + c - '0' ret ret * 10 + c - '0' ret * 10 + c ret * 10 ret 10 c '0' return ret; ret private void fillBuffer() throws IOException
        {
            bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
            if (bytesRead == -1) {
                buffer[0] = -1;
            }
        } fillBuffer {
            bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
            if (bytesRead == -1) {
                buffer[0] = -1;
            }
        } bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE) bytesRead din.read(buffer, bufferPointer = 0, BUFFER_SIZE) din.read din buffer bufferPointer = 0 bufferPointer 0 BUFFER_SIZE if (bytesRead == -1) {
                buffer[0] = -1;
            } bytesRead == -1 bytesRead -1 1 {
                buffer[0] = -1;
            } buffer[0] = -1 buffer[0] buffer 0 -1 1 private byte read() throws IOException
        {
            if (bufferPointer == bytesRead) {
                fillBuffer();
            }
            return buffer[bufferPointer++];
        } read {
            if (bufferPointer == bytesRead) {
                fillBuffer();
            }
            return buffer[bufferPointer++];
        } if (bufferPointer == bytesRead) {
                fillBuffer();
            } bufferPointer == bytesRead bufferPointer bytesRead {
                fillBuffer();
            } fillBuffer() fillBuffer return buffer[bufferPointer++]; buffer[bufferPointer++] buffer bufferPointer++ bufferPointer public class Main
{
	public static void main(String[] args) throws Exception
	{
		Reader reader = new Reader();
      	int n = reader.nextInt();
      	int k = reader.nextInt();
		OutputStream out = new BufferedOutputStream(System.out);
		out.write((""+ fromDeci(k, n).length()).getBytes());
		out.flush();
	}
    static char reVal(int num) 
    { 
        if (num >= 0 && num <= 9) 
            return (char)(num + 48); 
        else
            return (char)(num - 10 + 65); 
    } 

    // Function to convert a given decimal number 
    // to a base 'base' and 
    static String fromDeci(int base1, int inputNum) 
    { 
        String s = ""; 

        // Convert input number is given 
        // base by repeatedly dividing it 
        // by base and taking remainder 
        while (inputNum > 0) 
        { 
            s += reVal(inputNum % base1); 
            inputNum /= base1; 
        } 
        StringBuilder ix = new StringBuilder(); 

            // append a string into StringBuilder input1 
            ix.append(s); 

        // Reverse the result 
        return new String(ix.reverse()); 
    } 

	static class Reader {
        final private int BUFFER_SIZE = 1 << 16;
        private DataInputStream din;
        private byte[] buffer;
        private int bufferPointer, bytesRead;
        public Reader() {
            din = new DataInputStream(System.in);
            buffer = new byte[BUFFER_SIZE];
            bufferPointer = bytesRead = 0;
        }
        public int nextInt() throws IOException {
            int ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }
        public long nextLong() throws IOException {
            long ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }

        private void fillBuffer() throws IOException
        {
            bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
            if (bytesRead == -1) {
                buffer[0] = -1;
            }
        }

        private byte read() throws IOException
        {
            if (bufferPointer == bytesRead) {
                fillBuffer();
            }
            return buffer[bufferPointer++];
        }
    }
} public class Main
{
	public static void main(String[] args) throws Exception
	{
		Reader reader = new Reader();
      	int n = reader.nextInt();
      	int k = reader.nextInt();
		OutputStream out = new BufferedOutputStream(System.out);
		out.write((""+ fromDeci(k, n).length()).getBytes());
		out.flush();
	}
    static char reVal(int num) 
    { 
        if (num >= 0 && num <= 9) 
            return (char)(num + 48); 
        else
            return (char)(num - 10 + 65); 
    } 

    // Function to convert a given decimal number 
    // to a base 'base' and 
    static String fromDeci(int base1, int inputNum) 
    { 
        String s = ""; 

        // Convert input number is given 
        // base by repeatedly dividing it 
        // by base and taking remainder 
        while (inputNum > 0) 
        { 
            s += reVal(inputNum % base1); 
            inputNum /= base1; 
        } 
        StringBuilder ix = new StringBuilder(); 

            // append a string into StringBuilder input1 
            ix.append(s); 

        // Reverse the result 
        return new String(ix.reverse()); 
    } 

	static class Reader {
        final private int BUFFER_SIZE = 1 << 16;
        private DataInputStream din;
        private byte[] buffer;
        private int bufferPointer, bytesRead;
        public Reader() {
            din = new DataInputStream(System.in);
            buffer = new byte[BUFFER_SIZE];
            bufferPointer = bytesRead = 0;
        }
        public int nextInt() throws IOException {
            int ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }
        public long nextLong() throws IOException {
            long ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }

        private void fillBuffer() throws IOException
        {
            bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
            if (bytesRead == -1) {
                buffer[0] = -1;
            }
        }

        private byte read() throws IOException
        {
            if (bufferPointer == bytesRead) {
                fillBuffer();
            }
            return buffer[bufferPointer++];
        }
    }
} Main
import java.io.*;
import java.lang.*;
import java.util.*;

public class Main
{
	public static void main(String[] args) throws Exception
	{
		Reader reader = new Reader();
      	int n = reader.nextInt();
      	int k = reader.nextInt();
		OutputStream out = new BufferedOutputStream(System.out);
		out.write((""+ fromDeci(k, n).length()).getBytes());
		out.flush();
	}
    static char reVal(int num) 
    { 
        if (num >= 0 && num <= 9) 
            return (char)(num + 48); 
        else
            return (char)(num - 10 + 65); 
    } 

    // Function to convert a given decimal number 
    // to a base 'base' and 
    static String fromDeci(int base1, int inputNum) 
    { 
        String s = ""; 

        // Convert input number is given 
        // base by repeatedly dividing it 
        // by base and taking remainder 
        while (inputNum > 0) 
        { 
            s += reVal(inputNum % base1); 
            inputNum /= base1; 
        } 
        StringBuilder ix = new StringBuilder(); 

            // append a string into StringBuilder input1 
            ix.append(s); 

        // Reverse the result 
        return new String(ix.reverse()); 
    } 

	static class Reader {
        final private int BUFFER_SIZE = 1 << 16;
        private DataInputStream din;
        private byte[] buffer;
        private int bufferPointer, bytesRead;
        public Reader() {
            din = new DataInputStream(System.in);
            buffer = new byte[BUFFER_SIZE];
            bufferPointer = bytesRead = 0;
        }
        public int nextInt() throws IOException {
            int ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }
        public long nextLong() throws IOException {
            long ret = 0;
            byte c = read();
            while (c <= ' ') {
                c = read();
            }
            do {
                ret = ret * 10 + c - '0';
            } while ((c = read()) >= '0' && c <= '9');
            return ret;
        }

        private void fillBuffer() throws IOException
        {
            bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
            if (bytesRead == -1) {
                buffer[0] = -1;
            }
        }

        private byte read() throws IOException
        {
            if (bufferPointer == bytesRead) {
                fillBuffer();
            }
            return buffer[bufferPointer++];
        }
    }
}
