import java.util.ArrayList;
import java.util.Scanner;

public class Hindenburg {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int K = sc.nextInt();
        ArrayList<Integer> lista = new ArrayList<>();

        for (int i = 0; i < N; i++) {
            lista.add(sc.nextInt());
        }

        int mask = 0b100000000000000000000000000000;
        int res = 0;

        for (int nap = 0; nap < 30; nap++) {
            //System.out.print(nap + ". nap:");
            ArrayList<Integer> bads = new ArrayList<>();
            for (int i = 0; i < lista.size(); i++) {
                if ((lista.get(i) & mask) == 0) {
                    bads.add(lista.get(i));
                }
            }

            //System.out.println("bads: " + lista);

            if (lista.size() - bads.size() >= K) {
                res += mask;
                if (lista.size() - bads.size() == K) {
                    //System.out.println(lista);
                    System.out.println(res);
                    System.exit(0);
                }

                lista.removeAll(bads);
            }

            mask >>= 1;
        }

        //System.out.println(lista);
        System.out.println(res);

    }

}

