#include <iostream>
#include <cstdio>
using namespace std;
#define MP make_pair
pair<int,pair<int,int> > func1(int a,int b) {
int g;
if(!g) return MP(0,MP(0,0));
pair<int,int> c(MP(1,0)),d(MP(0,1)),tmp;
while(a%b) {
int q=a/b,r=a%b;
tmp=d;
d.first=c.first-q*d.first,d.second=c.second-q*d.second;
c=tmp;
a=b;b=r;
}
return MP(b,d);
}
void func2(int a,int c,int m) {
pair<int,pair<int,int> > res=func1(a,m);
int g=res.first;
pair<int,int> res1(MP(res.second.first,res.second.first));
if(c%g) {
cout << "No solution! and " << "gcd(" << a << "," << m << ")=" << g << endl;
return ;
}
res1.first*=c/g;
res1.first%=m;
if(res1.first<0) res1.first+=m;
cout << "There's " << g << " solution(s):" << endl;
for(int i=0;i<g;i++)
cout << (res1.first+i*m/g)%m << " ";
cout << endl;
}
int main() {
int a,c,m;
while(1) {
cout << "ax = c(mod m)" << endl;
cin >> a >> c >> m;
if(!m) {
cout << "m mustn't be 0!" << endl;
continue;
}
func2(a,c,m);
cout << endl;
}
return 0;
}