import java.io.OutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.util.Arrays; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.io.Writer; import java.io.OutputStreamWriter; import java.io.BufferedReader; import java.io.InputStream; /** * Built using CHelper plug-in * Actual solution is at the top * * @author lewin */ public class cc_lewin { public static void main(String[] args) { InputStream inputStream = System.in; OutputStream outputStream = System.out; InputReader2 in = new InputReader2(inputStream); OutputWriter out = new OutputWriter(outputStream); ContestConstruction solver = new ContestConstruction(); solver.solve(1, in, out); out.close(); } static class ContestConstruction { public void solve(int testNumber, InputReader2 in, OutputWriter out) { int n = in.nextInt(), x = in.nextInt(); int[] ds = in.readIntArray(n); Arrays.sort(ds); long[][] ct = new long[n][n]; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { ct[i][j] = 1; } } x -= 2; while (x-- > 0) { long[][] nct = new long[n][n]; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { for (int k = j + 1; k < n; k++) { if (ds[k] <= ds[i] + ds[j]) { nct[j][k] += ct[i][j]; } } } } ct = nct; } long res = 0; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) res += ct[i][j]; out.println(res); } } static class OutputWriter { private final PrintWriter writer; public OutputWriter(OutputStream outputStream) { writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream))); } public OutputWriter(Writer writer) { this.writer = new PrintWriter(writer); } public void close() { writer.close(); } public void println(long i) { writer.println(i); } } static class InputReader2 { private BufferedReader in; private StringTokenizer st; public InputReader2(InputStream stream) { in = new BufferedReader(new InputStreamReader(stream)); st = null; } public int[] readIntArray(int tokens) { int[] ret = new int[tokens]; for (int i = 0; i < tokens; i++) { ret[i] = nextInt(); } return ret; } public int nextInt() { return Integer.parseInt(next()); } public String next() { while (st == null || !st.hasMoreTokens()) { try { st = new StringTokenizer(in.readLine()); } catch (IOException e) { e.printStackTrace(); } } return st.nextToken(); } } }