注意数组一定要开到比第一个1000以后的素数大的范围
#include<bits/stdc++.h>
int a[1010];
int main()
{
int n,p,i,m,j,k;
while(~scanf("%d %d",&n,&p))
{
memset(a,-1,sizeof(a));
for(i=1;i<=n;i++)
{
scanf("%d",&m);
k=m%p;
if(a[k]==-1||a[k]==m)
{
a[k]=m;
}
else
{
for(j=1;j<p;j++)
{
k=(m+j)%p;
if(a[k]==-1||a[k]==m)
{
a[k]=m;
break;
}
}
}
printf(i==n?"%d\n":"%d ",k);
}
}
return 0;
}