#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i=a;i<b;i++)
typedef long long ll;
bool is_prime(int x){if(x<2)return false;int m=sqrt(x+0.5);rep(i,2,m+1)if(x%i==0)return false;return true;}
int a,b,k;
int bit[20];
int dp[20][10010][200];
int dfs(int pos,int limit,int sum_dig,int sum){
if(pos==-1) return (sum_dig==0)&&(sum==0);
if(!limit&&dp[pos][sum][sum_dig]!=-1)return dp[pos][sum][sum_dig];
int up=limit?bit[pos]:9;
int ans=0;
rep(i,0,up+1){
ans+=dfs(pos-1,limit&&i==up,(sum_dig+i)%k,(sum*10+i)%k);
}
if(!limit)dp[pos][sum][sum_dig]=ans;
return ans;
}
int solve(int x){
// if(x==0)return 0;
int cnt=0;
int tmp=x;
while(tmp){
bit[cnt++]=tmp%10;
tmp/=10;
}
return dfs(cnt-1,1,0,0);
}
int main(){
int T;
scanf("%d",&T);
while(T--){
memset(dp,-1,sizeof(dp));
scanf("%d %d %d",&a,&b,&k);
printf("%d\n",solve(b)-solve(a-1));
}
return 0;
}