def I(): return input() def IS(): return input().split() def II(): return int(input()) def IIS(): return map(int, input().split()) def LIIS(): return list(map(int, input().split())) def ZER(N): return [False for _ in range(N)] INF = 10**30 MOD = 10**9+7 # V # / ̄ψ ̄\ # | 合格祈願 | # |_____| ############################################################################## n,k=IIS() A=LIIS() ans=set() def solve(num,li): if num==n: if len(li)>=k: seki=1 wa=0 for i in li: seki*=i wa+=i global ans ans.add(seki) ans.add(wa) return solve(num+1,li) li.append(A[num]) solve(num+1,li) li.pop() return solve(0,[]) print(len(ans))