import java.util.*;

class Solmu {
    Solmu vasen, oikea;
    int arvo;
    
    public Solmu(int arvo) {
        this.arvo = arvo;
    }
}

public class Binaaripuu {
    static Solmu juuri;
    
    static void lisaa(Solmu s, int x) {
        if (x < s.arvo) {
            if (s.vasen == null) {
                s.vasen = new Solmu(x);
            } else {
                lisaa(s.vasen,x);
            }
        } else {
            if (s.oikea == null) {
                s.oikea = new Solmu(x);
            } else {
                lisaa(s.oikea,x);
            }
        }
    }

    static void lisaa(int x) {
        if (juuri == null) {
            juuri = new Solmu(x);
        } else {
            lisaa(juuri,x);
        }
    }
    
    static int korkeus(Solmu s) {
        if (s == null) return 0;
        return Math.max(korkeus(s.vasen),korkeus(s.oikea))+1;
    }

    public static void main(String[] args) {
        int n = 1000000;
        ArrayList<Integer> lista = new ArrayList<>();
        for (int i = 1; i <= n; i++) lista.add(i);
        Collections.shuffle(lista);
        for (Integer x : lista) lisaa(x);
        System.out.println(korkeus(juuri));
    }
}
