/*COGS 610 */
#include<iostream>
#include<cstdio>
#include<cstring>
#define mod 23333
#define maxn 200010
using namespace std;
int a[maxn],n,c,head[maxn],cnt[maxn],num,ans;
struct node{
int v,pre;
}e[maxn];
void Insert(int x){
int ha=(x%mod+x/mod)%mod;
for(int i=head[ha];i;i=e[i].pre)
if(e[i].v==x){
cnt[i]++;
return;
}
num++;e[num].v=x;
e[num].pre=head[ha];
head[ha]=num;cnt[num]++;
}
int Query(int x){
int ha=(x%mod+x/mod)%mod;
for(int i=head[ha];i;i=e[i].pre)
if(e[i].v==x)return cnt[i];
return 0;
}
int main()
{
freopen("dec.in","r",stdin);
freopen("dec.out","w",stdout);
scanf("%d%d",&n,&c);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++){
int s=a[i]+c;
Insert(s);
}
for(int i=1;i<=n;i++)
ans+=Query(a[i]);
printf("%d\n",ans);
return 0;
}
/*COGS 1176*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 500010
#define ha 119
#define HA 31
#define mod 233333
#define MOD 100007
using namespace std;
int n,m,num,head[maxn],l,ans,cnt[maxn];
char s[250];
struct node{
int v,pre;
}e[maxn];
void Insert(int x,int y){
for(int i=head[x];i;i=e[i].pre)
if(e[i].v==y){
cnt[i]++;return;
}
num++;e[num].v=y;
e[num].pre=head[x];
head[x]=num;cnt[num]++;
}
int Query(int x,int y){
for(int i=head[x];i;i=e[i].pre)
if(e[i].v==y)return cnt[i];
return 0;
}
int main()
{
freopen("mtest.in","r",stdin);
freopen("mtest.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%s",s);
l=strlen(s);
int t=0,T=0;
for(int j=0;j<l;j++){
t=t*ha+s[j]-'A';t%=mod;
T=T*HA+s[j]-'A';T%=MOD;
}
Insert(t,T);
}
scanf("%d",&m);
for(int i=1;i<=m;i++){
scanf("%s",s);
l=strlen(s);
int t=0,T=0;
for(int j=0;j<l;j++){
t=t*ha+s[j]-'A';t%=mod;
T=T*HA+s[j]-'A';T%=MOD;
}
ans+=Query(t,T);
}
printf("%d\n",ans);
return 0;
}
/*
COGS 1406
虽然没有hash
但是学了学输出优化
*/
#include<cstdio>
using namespace std;
int a[121],x,c[11];
int init(){
char s=getchar();int x=0;
while(s!=EOF&&(s<'0'||s>'9'))s=getchar();
if(s==EOF)return -1;
while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}
return x;
}
void Printf(int x){
int r=0;if(x==0)r++;
while(x){c[++r]=x%10;x/=10;}
while(r--)putchar(c[r+1]+'0');
}
int main()
{
freopen("AgeSort.in","r",stdin);
freopen("AgeSort.out","w",stdout);
while((x=init())!=-1)a[x]++;
for(int i=0;i<=120;i++)
for(int j=1;j<=a[i];j++){
Printf(i);putchar(' ');
}
return 0;
}