#include<bits/stdc++.h>

#define _GLIBCXX_DEBUG
#define all(v) (v).begin(),(v).end()

using namespace std;

using ll=long long;
using pii=pair<int, int>;
using vi=vector<int>;
using vii=vector<vector<int>>;

const ll LINF=1LL<<60;
const int INF=1<<29;
const int MOD=1e9+7;

vector<string> num, ord;
int n, k;
set<string> st;
vector<bool> used;

void rec(int pos=0){
    if(pos == k){
        string s="";
        for(int i=0; i<k; i++) s=s+ord[i];
        st.insert(s);
        return;
    }
    for(int i=0; i<n; i++){
        if(used[i]) continue;
        used[i]=true;
        ord[pos]=num[i];
        rec(pos+1);
        used[i]=false;
    }
    return;
}

int main(){
    while(cin >> n >> k){
        if(n == 0 && k == 0) break;
        st.clear();
        num.resize(n), ord.resize(k);
        used.assign(n, 0);
        for(auto &x : num) cin >> x;
        rec();
        cout << st.size() << endl;
    }
    return 0;
}
