//Pratik Dayama - PRIMPAL
#include <iostream>
using namespace std;
#define MOD 1000000007
//prime[k] is number of primes with k+1 digits
//should be precomputed separately or taken from the internet
int prime[9] = {4, 25, 168, 1229, 9592, 78498, 664579, 5761455, 50847534};
//calculate 10^exp using exponentiation by squaring
long long pow10(long long exp) {
long long ans = 1, base = 10;
while(exp > 0) {
if(exp & 1)
ans = (ans*base) % MOD;
base = (base*base) % MOD;
exp >>= 1;
}
return ans % MOD;
}
int main() {
int t;
long long n, k;
cin >> t;
while(t--) {
cin >> n >> k;
if(n == k+1) //we know there are 9 palindromes of length 1
cout << 9 * prime[k-1] << '\n';
else //there are 9 * 10^((x-1)/2) palindromes of length x
cout << (9 * prime[k-1] * pow10((n-k-1)/2)) % MOD << '\n';
}
return 0;
}
Ly9QcmF0aWsgRGF5YW1hIC0gUFJJTVBBTAojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKCi8vcHJpbWVba10gaXMgbnVtYmVyIG9mIHByaW1lcyB3aXRoIGsrMSBkaWdpdHMKLy9zaG91bGQgYmUgcHJlY29tcHV0ZWQgc2VwYXJhdGVseSBvciB0YWtlbiBmcm9tIHRoZSBpbnRlcm5ldAppbnQgcHJpbWVbOV0gPSB7NCwgMjUsIDE2OCwgMTIyOSwgOTU5MiwgNzg0OTgsIDY2NDU3OSwgNTc2MTQ1NSwgNTA4NDc1MzR9OwoKLy9jYWxjdWxhdGUgMTBeZXhwIHVzaW5nIGV4cG9uZW50aWF0aW9uIGJ5IHNxdWFyaW5nCmxvbmcgbG9uZyBwb3cxMChsb25nIGxvbmcgZXhwKSB7CiAgICBsb25nIGxvbmcgYW5zID0gMSwgYmFzZSA9IDEwOwogICAgd2hpbGUoZXhwID4gMCkgewogICAgICAgIGlmKGV4cCAmIDEpCiAgICAgICAgICAgIGFucyA9IChhbnMqYmFzZSkgJSBNT0Q7CiAgICAgICAgYmFzZSA9IChiYXNlKmJhc2UpICUgTU9EOwogICAgICAgIGV4cCA+Pj0gMTsKICAgIH0KICAgIHJldHVybiBhbnMgJSBNT0Q7Cn0KCmludCBtYWluKCkgewogICAgaW50IHQ7CiAgICBsb25nIGxvbmcgbiwgazsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUodC0tKSB7CiAgICAgICAgY2luID4+IG4gPj4gazsKICAgICAgICBpZihuID09IGsrMSkgLy93ZSBrbm93IHRoZXJlIGFyZSA5IHBhbGluZHJvbWVzIG9mIGxlbmd0aCAxCiAgICAgICAgICAgIGNvdXQgPDwgOSAqIHByaW1lW2stMV0gPDwgJ1xuJzsKICAgICAgICBlbHNlIC8vdGhlcmUgYXJlIDkgKiAxMF4oKHgtMSkvMikgcGFsaW5kcm9tZXMgb2YgbGVuZ3RoIHgKICAgICAgICAgICAgY291dCA8PCAoOSAqIHByaW1lW2stMV0gKiBwb3cxMCgobi1rLTEpLzIpKSAlIE1PRCA8PCAnXG4nOwogICAgfQogICAgcmV0dXJuIDA7Cn0=