메뉴 건너뛰기

문제


시간메모리제출 회통과 회비율
1초128MB
0
0
0.0%
나의 횟수나의 판정시도 명성공 명비율
00
0.0%
문제

하나코는 카드 \(n\)장(\(4 \le n \le 10\))을 늘어놓고 놀고 있다. 각 카드에는 \(1\) 이상 \(99\) 이하의 정수가 하나씩 적혀 있다.

하나코는 이 카드 가운데 \(k\)장(\(2 \le k \le 4\))을 골라 가로로 한 줄로 나열해 정수를 만들기로 했다. 만들 수 있는 정수는 모두 몇 종류일까.

예를 들어 카드가 \(1, 2, 3, 13, 21\)의 \(5\)장이고 그중 \(3\)장을 고른다고 하자. \(2, 1, 13\)을 이 순서로 놓으면 정수 \(2113\)을 만들 수 있다. \(21, 1, 3\)을 이 순서로 놓아도 같은 정수 \(2113\)이 된다. 이렇게 서로 다른 카드 고르기에서도 같은 정수가 나올 수 있다.

카드 \(n\)장에 적힌 정수가 주어질 때, 그중 \(k\)장을 골라 가로로 나열해 만들 수 있는 정수의 개수를 구하는 프로그램을 작성하라.

입력

입력은 다음 형식으로 주어진다.

\(n\)

\(k\)

\(a_1\)

\(a_2\)

\(\vdots\)

\(a_n\)

  • 입력은 \(2+n\)줄이다.
  • 첫째 줄에 카드 장수 \(n\)이 주어진다.
  • 둘째 줄에 고를 장수 \(k\)가 주어진다.
  • \(2+i\)번째 줄(\(1 \le i \le n\))에 \(i\)번째 카드에 적힌 정수가 주어진다.
  • \(4 \le n \le 10\)
  • \(2 \le k \le 4\)
  • 각 카드에 적힌 수는 \(1\) 이상 \(99\) 이하이다.
  • 입력되는 값은 모두 정수이다.
출력

다음 형식으로 출력한다.

첫째 줄에 하나코가 만들 수 있는 정수의 개수를 출력한다.

예시 1
입력
4 2 1 2 12 1
출력
7
설명

\(1, 2, 12, 1\)의 \(4\)장에서 \(2\)장을 골라 나열하면 \(11, 12, 21, 112, 121, 122, 212\)의 \(7\)가지이다.

예시 2
입력
6 3 72 2 12 7 2 1
출력
68
위로