# 2775 부녀회장이 될테야
"""
거주 조건
a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼
사람들을 데려와 살아야 한다
아파트에 비어있는 집은 없고, 모든 거주민들이 이 계약 조건을 지키고 있다.
주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라.
단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며 0층의 i호에는 i명이 산다.

첫째 줄에 t가 주어진다. 각 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다.
거주민 수를 출력하라.

접근법
k/n 1 2 3
 3  1 5 15
 2  1 4 10
 1  1 3 6
 0  1 2 3
규칙을 보면, k = 2, n = 2라면
k = 2, n = 1일때 사람 수와, k = 1, n = 2일때 사람 수를 더하면 된다.
1. t를 입력받는다.
- for
    2. t만큼 반복시키고, k, n을 입력받는다.
    3. k_0은 층수가 0층일때의 사람 수를 리스트로 만든 것이다.
    (예를 들어, 주어진 n이 3이면, k_0는 [1,2,3]으로 할당된다.)
    - for
        4. k만큼 반복시킨다. 층수만큼 반복시켜야 최종 층수의 값까지 반복 연산할 수 있다.
        - for
            5. (1, n)의 범위로 반복시킨다.
            6. k_0[i] += k_0[i-1]로 연산해준다.
            (예를 들어, n = 3이라면,
            k_0[1] += k_0[0] -> 2 + 1 = 3,
            k_0[2] += k_0[1] -> 3 + 3 = 6 이 된다.)
        (정리한다면, 5,6 과정은 리스트를 새로고침 해주는 단계이다. 즉, k = 2, n = 3이라면,
        k = 0 : k_0 = [1,2,3],
        k = 1 : k_0 = [1,3,6],
        k = 2 : k_0 = [1,4,10] 이 된다.)
    7. print(k_0[-1])로 k_0의 마지막 값을 출력한다.

숙지가 필요한 항목
1. 논리구조를 못 세우겠으면 다른 사람 코드를 리뷰하고 분석하자.
2. 왜 이런 논리구조를 세울 수 있었는지 본질을 파악하자.
3. [-1]로 마지막 값을 출력할 수 있음을 기억하자.
"""

t = int(input())
for _ in range(t):
    k = int(input())
    n = int(input())
    k_0 = [i for i in range(1, n+1)]
    for _ in range(k):
        for i in range(1, n):
            k_0[i] += k_0[i-1]
    print(k_0[-1])