#include <iostream>
#include <string.h>
using namespace std;
int main() {
int t;
int floor, roomNumber;
cin >> t;
while (t--) {
cin >> floor; cin >> roomNumber;
int** arr = new int* [floor+1];
for (int i = 0; i < floor+1; i++) {
arr[i] = new int[roomNumber];
memset(arr[i], 0, sizeof(int*) * roomNumber);
}
for (int i = 0; i < roomNumber; i++) {
arr[0][i] = i+1;/*1층 초기화*/
}
for (int i = 1; i < floor + 1; i++) {
arr[i][0] = 1; // 각 층 1호 1로 초기화
for (int j = 1; j < roomNumber; j++) {
arr[i][j] = arr[i - 1][j] + arr[i][j - 1];
}
}
//for (int i = 0; i < floor + 1; i++) {
// for (int j = 0; j < roomNumber; j++) {
//cout << arr[i][j] << " ";
//}
//cout << "\n";
//}
cout << arr[floor][roomNumber-1] << "\n";
for (int i = 0; i < floor; i++) {
delete[] arr[i];
}
delete arr;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCB0OwoJaW50IGZsb29yLCByb29tTnVtYmVyOwoJY2luID4+IHQ7Cgl3aGlsZSAodC0tKSB7CgkJY2luID4+IGZsb29yOyBjaW4gPj4gcm9vbU51bWJlcjsKCQlpbnQqKiBhcnIgPSBuZXcgaW50KiBbZmxvb3IrMV07CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBmbG9vcisxOyBpKyspIHsKCQkJYXJyW2ldID0gbmV3IGludFtyb29tTnVtYmVyXTsKCQkJbWVtc2V0KGFycltpXSwgMCwgc2l6ZW9mKGludCopICogcm9vbU51bWJlcik7CgkJfQoKCQkKCQlmb3IgKGludCBpID0gMDsgaSA8IHJvb21OdW1iZXI7IGkrKykgewoJCQlhcnJbMF1baV0gPSBpKzE7Lyox7Li1IOy0iOq4sO2ZlCovCgkJfQoKCQlmb3IgKGludCBpID0gMTsgaSA8IGZsb29yICsgMTsgaSsrKSB7CgkJCWFycltpXVswXSA9IDE7IC8vIOqwgSDsuLUgMe2YuCAx66GcIOy0iOq4sO2ZlAoJCQlmb3IgKGludCBqID0gMTsgaiA8IHJvb21OdW1iZXI7IGorKykgewoJCQkJYXJyW2ldW2pdID0gYXJyW2kgLSAxXVtqXSArIGFycltpXVtqIC0gMV07CQkKCQkJfQoJCX0KCgkJLy9mb3IgKGludCBpID0gMDsgaSA8IGZsb29yICsgMTsgaSsrKSB7Ci8vCQkJZm9yIChpbnQgaiA9IDA7IGogPCByb29tTnVtYmVyOyBqKyspIHsKCQkJCS8vY291dCA8PCBhcnJbaV1bal0gPDwgIiAgICAgIjsKCQkJLy99CgkJCS8vY291dCA8PCAiXG4iOwoJCS8vfQoKCQljb3V0IDw8IGFycltmbG9vcl1bcm9vbU51bWJlci0xXSA8PCAiXG4iOwoKCQlmb3IgKGludCBpID0gMDsgaSA8IGZsb29yOyBpKyspIHsKCQkJZGVsZXRlW10gYXJyW2ldOwoJCX0KCQlkZWxldGUgYXJyOwoJfQp9