using System;
using System.Numerics;
public static class ZadanieSpoj
{
public static BigInteger Solution(int firstData, int secondData)
=> NumberOfCombinations(firstData - 1, secondData - 1);
private static BigInteger NumberOfCombinations(int a, int b)
{
b = Math.Min(b, a - b);
if (b == 0)
return 1;
BigInteger result = a;
for (int x = 2; x <= b; ++x)
{
result *= a - x + 1;
result /= x;
}
return result;
}
}
public static class Program
{
private static void Main()
{
int temp = int.Parse(Console.ReadLine());
while (temp-- > 0)
{
int[] line = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
Console.WriteLine(
ZadanieSpoj.Solution(line[0], line[1]));
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTnVtZXJpY3M7CgpwdWJsaWMgc3RhdGljIGNsYXNzIFphZGFuaWVTcG9qCnsKCiAgICBwdWJsaWMgc3RhdGljIEJpZ0ludGVnZXIgU29sdXRpb24oaW50IGZpcnN0RGF0YSwgaW50IHNlY29uZERhdGEpCiAgICAgICAgPT4gTnVtYmVyT2ZDb21iaW5hdGlvbnMoZmlyc3REYXRhIC0gMSwgc2Vjb25kRGF0YSAtIDEpOwoKCiAgICBwcml2YXRlIHN0YXRpYyBCaWdJbnRlZ2VyIE51bWJlck9mQ29tYmluYXRpb25zKGludCBhLCBpbnQgYikKICAgIHsKICAgICAgICBiID0gTWF0aC5NaW4oYiwgYSAtIGIpOwogICAgICAgIGlmIChiID09IDApCiAgICAgICAgICAgIHJldHVybiAxOwoKICAgICAgICBCaWdJbnRlZ2VyIHJlc3VsdCA9IGE7CiAgICAgICAgZm9yIChpbnQgeCA9IDI7IHggPD0gYjsgKyt4KQogICAgICAgIHsKCiAgICAgICAgICAgIHJlc3VsdCAqPSBhIC0geCArIDE7CiAgICAgICAgICAgIHJlc3VsdCAvPSB4OwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KfQoKcHVibGljIHN0YXRpYyBjbGFzcyBQcm9ncmFtCnsKICAgIHByaXZhdGUgc3RhdGljIHZvaWQgTWFpbigpCiAgICB7CiAgICAgICAgaW50IHRlbXAgPSBpbnQuUGFyc2UoQ29uc29sZS5SZWFkTGluZSgpKTsKICAgICAgICB3aGlsZSAodGVtcC0tID4gMCkKICAgICAgICB7CiAgICAgICAgICAgIGludFtdIGxpbmUgPSBBcnJheS5Db252ZXJ0QWxsKENvbnNvbGUuUmVhZExpbmUoKS5TcGxpdCgpLCBpbnQuUGFyc2UpOwoKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoCiAgICAgICAgICAgICAgWmFkYW5pZVNwb2ouU29sdXRpb24obGluZVswXSwgbGluZVsxXSkpOwogICAgICAgIH0KICAgIH0KfQoK