/******************************************************************************
 *  Name:    Reference Solution
 *  NetID:   ref
 *  Precept: P00
 *
 *  Description:  Reads two integers m and n from standard input; then reads
 *                a sequence of n integers between 1 and m from standard input;
 *                and prints the Shannon entropy of the sequence to standard
 *                output.
 *
 ******************************************************************************/

public class ShannonEntropy {

    public static void main(String[] args) {

        // sequence of n integers are between 1 and m
        int m = StdIn.readInt();

        // number of integers
        int n = StdIn.readInt();

        // compute frequencies
        // freq[i] = # times integer i appears
        int[] freq = new int[m+1];
        for (int j = 0; j < n; j++) {
            int value = StdIn.readInt();
            freq[value]++;
        }

        // compute Shannon entropy
        double entropy = 0.0;
        for (int i = 1; i <= m; i++) {
            double p = 1.0 * freq[i] / n;
            if (freq[i] > 0)  
                entropy -= p * Math.log(p) / Math.log(2);
        }

        // print results
        StdOut.println(entropy);
    }
}