#include<iostream>
#include<cmath>
using namespace std;

int main(){
	int n,k,c[10],l[10],e[10000],d,a,b;
	while(true){
		cin>>n;
		cin>>k;
		if(n==0 && k==0){
			break;
		}
		for(int i=0;i<n;i++){
			cin>>c[i];
			if(c[i]>=10){
				l[i]=100;
			}
			else{
				l[i]=10;
			}
		}
		d=0;
		if(k==2){
			for(int i=0;i<n;i++){
				for(int j=0;j<n;j++){
					b=0;
					if(i!=j){
						a=c[i]*l[j]+c[j];
						for(int k=0;k<d;k++){
							if(a==e[k]){
								goto Exit1;
							}

						}
						e[d]=a;
						d++;
Exit1:
						a=0;
					}
				}
			}
		}

		if(k==3){
			for(int i=0;i<n;i++){
				for(int j=0;j<n;j++){
					for(int m=0;m<n;m++){
						b=0;
						if(i!=j && (j!=m && m!=i)){
							a=c[i]*(l[j]*l[m])+c[j]*l[m]+c[m];
							for(int k=0;k<d;k++){
								if(a==e[k]){
									goto Exit2;
								}
							}
							e[d]=a;
							d++;
Exit2:
							a=0;
						}

					}
				}
			}
		}

		if(k==4){
			for(int i=0;i<n;i++){
				for(int j=0;j<n;j++){
					for(int m=0;m<n;m++){
						for(int o=0;o<n;o++){
							b=0;
							if(((i!=j && o!=i) && (j!=m && m!=i)) && (o!=j && o!=m)){
								a=c[i]*(l[j]*l[m]*l[o])+c[j]*(l[m]*l[o])+c[m]*l[o]+c[o];
								for(int k=0;k<d;k++){
									if(a==e[k]){
										goto Exit3;
									}
								}
								e[d]=a;
								d++;
Exit3:
								a=0;
							}
						}

					}
				}
			}
		}

		std::cout<<d<<endl;
	}
	return 0;
}
#include<bits/stdc++.h>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;
typedef long long ll;

int n,k,d[10];

int sum(int a,int b,int c=0,int d=0){
	int x=a*(b>=10?100:10)+b;
	if(k==2)return x;
	x=x*(c>=10?100:10)+c;
	if(k==3)return x;
	return x=x*(d>=10?100:10)+d;
}

int main(){
	while(scanf("%d%d",&n,&k),n){
		for(int i=0;i<n;i++)scanf("%d",&d[i]);
		sort(d,d+n);
		vector<int> data;
		for(int i=n-1;i>=0;i--){
			for(int j=n-1;j>=0;j--){
				if(i==j)continue;
				if(k==2){
					data.push_back(sum(d[i],d[j]));
					continue;
				}
				for(int r=n-1;r>=0;r--){
					if(i==r||j==r)continue;
					if(k==3){
						data.push_back(sum(d[i],d[j],d[r]));
						continue;
					}
					for(int z=n-1;z>=0;z--){
						if(i==z||j==z||r==z)continue;
						data.push_back(sum(d[i],d[j],d[r],d[z]));
					}
				}
			}
		}
		sort(data.begin(),data.end());
		data.erase(unique(data.begin(),data.end()),data.end());
		printf("%ld\n",data.size());
	}
}