순열의 번호 매기기

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

11부터 nn까지의 정수를 한 번씩 사용해 만든 순열 P=(p1,p2,,pn)P=(p_1, p_2, \ldots, p_n)이 있다. 길이가 nn인 순열을 모두 사전순으로 늘어놓았을 때 PP가 몇 번째에 오는지를 d(P)d(P)라고 하자. 맨 앞에 오는 (1,2,,n)(1, 2, \ldots, n)의 번호는 11이다.

길이가 nn인 순열을 전부 만들어 보지 않고 d(P)d(P)를 구하는 프로그램을 작성하시오. nn5050 이하이다.

n=4n=4일 때 사전순으로 늘어놓은 순열과 그 번호는 아래 그림과 같다.

n이 4일 때 사전순으로 늘어놓은 순열과 번호

P=(2,3,4,1)P=(2,3,4,1)이면 d(P)=10d(P)=10이고, P=(4,2,1,3)P=(4,2,1,3)이면 d(P)=21d(P)=21이다.

입력

입력은 여러 줄로 이루어진다. 각 줄에는 질의가 하나씩 (n,(p1,p2,,pn))(n,(p_1,p_2,\ldots,p_n)) 형식으로 주어지고, 줄 안에 공백은 없다. 마지막 줄에는 1-1만 있고, 이 줄을 만나면 입력이 끝난다. 질의는 하나 이상 주어진다.

출력

질의마다 구한 d(P)d(P)를 입력에 주어진 순서대로 한 줄에 출력한다. 값과 값 사이는 쉼표 하나로 구분하고, 쉼표 앞뒤에 공백을 넣지 않는다.