#include int card[10]; int flag[100000000] = {0}; int main(void) { unsigned long int num, i; int j, k, l, m, n; char buf[255]; scanf("%d %d", &n, &k); for(i = 0; i < n; i++) { scanf("%d", &card[i]); } if(k == 2) { for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { if(j == i) continue; sprintf(buf, "%d%d", card[i], card[j]); num = atol(buf); flag[num] = 1; } } } else if(k == 3) { for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { if(j == i) continue; for(l = 0; l < n; l++) { if(l == i || l == j) continue; sprintf(buf, "%d%d%d", card[i], card[j], card[l]); num = atol(buf); flag[num] = 1; } } } } else if(k == 4) { for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { if(j == i) continue; for(l = 0; l < n; l++) { if(l == i || l == j) continue; for(m = 0; m < n; m++) { if(m == i || m == j || m == l) continue; sprintf(buf, "%d%d%d%d", card[i], card[j], card[l], card[m]); num = atol(buf); flag[num] = 1; } } } } } unsigned long int count = 0; for(i = 0; i < 100000000; i++) { if(flag[i]) count++; } printf("%d\n", count); return 0; }