#include<bits/stdc++.h>
using namespace std;

#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define int long long
#define line cout<<"[At "<<__LINE__<<"]"<<endl;
#define size(x) ((int)x.size())

namespace Debug{
  void __print(signed x){cout << x;}
  void __print(long x){cout << x;}
  void __print(long long x){cout << x;}
  void __print(unsigned x){cout << x;}
  void __print(unsigned long x){cout << x;}
  void __print(unsigned long long x){cout << x;}
  void __print(float x){cout << x;}
  void __print(double x){cout << x;}
  void __print(long double x){cout << x;}
  void __print(char x){cout << '\'' << x << '\'';}
  void __print(const char *x){cout << '\"' << x << '\"';}
  void __print(const string &x){cout << '\"' << x << '\"';}
  void __print(bool x){cout << (x ? "true" : "false");}
  template<typename T, typename V> void __print(const pair<T, V> &x){cout << '{';__print(x.first);cout << ',';__print(x.second);cout << '}';}
  template<typename T> void __print(const T &x){int f = 0;cout << '{';for (auto &i : x) cout << (f++ ? "," : ""), __print(i);cout << "}";}
  void _print(){cout << "]"<<endl;}
  template <typename T, typename... V> void _print(T t, V... v){__print(t);if (sizeof...(v)) cout << ", ";_print(v...);}
  
  #define debug(x...) cout <<"Line:"<<__LINE__<< " [" << #x << "] = ["; _print(x);
  #define deb(x...) cout <<"[" << #x << "] = ["; _print(x);
}using namespace Debug;


const int mod = (int)1e9 + 7ll;

int dp[2000][2000][2], n;

int shoot(int plane, int k, int dir){
	if(plane > n || plane < 1 || k == 1)
		return 1l;

		if(dp[plane][k][dir] != -1)
			return dp[plane][k][dir];

		int res = 0l;

		if(dir == 0){
			res = shoot(plane + 1, k, dir);
			res += shoot(plane - 1, k - 1, 1 - dir);
		}
		else{
			res = shoot(plane - 1, k, dir);
			res += shoot(plane + 1, k - 1, 1 - dir);
		}

		res %= mod;
		return dp[plane][k][dir] = res;
}

void process(){
	int k;
	cin >> n >> k;
	cout << shoot(1, k, 0) << "\n";
}

signed main() {
	IOS;
	int t = 1;
	cin >> t;
	while(t--){
		memset(dp, -1, sizeof(dp));
		process();
	}
	return 0;
}