#include <iostream>
using namespace std;
#define int long long
string A;
int M, P, ind;
void Mod(int &x){
x %= M;
if (x < 0)
x += M;
}
pair<int, int> solve(int &i){
int k = 0, v = 0, init = i;
if (A[i] == '('){
i++;
int mul = 1;
while (A[i] != ')'){
auto [k1, v1] = solve(i);
v = v + mul * v1, k = k + mul * k1;
if (A[i] == '+')
mul = 1, i++;
else if (A[i] == '-')
mul = -1, i++;
Mod(v), Mod(k);
}
i++;
if (i < A.size() and A[i] == '*'){
i++;
auto [k1, v1] = solve(i);
k = k1 * v + k * v1;
v = v1 * v;
Mod(v), Mod(k);
}
return {k, v};
}
if (A[i] == 'x'){
k = 1, i++;
}
else{
while (isdigit(A[i])){
v = v * 10 + A[i] - '0', i++;
Mod(v);
}
}
if (A[i] == '*'){
i++;
auto [k1, v1] = solve(i);
k = k1 * v + k * v1;
v = v1 * v;
}
else if (A[i] == '+'){
i++;
auto [k1, v1] = solve(i);
k += k1, v += v1;
}
else if (A[i] == '-'){
i++;
auto [k1, v1] = solve(i);
k -= k1, v -= v1;
}
Mod(v), Mod(k);
// cout<<init<<' '<<i<<' '<<k<<' '<<v<<endl;
return {k, v};
}
signed main(){
cin>>A>>P>>M;
A = '(' + A + ')';
auto [k, v] = solve(ind);
cout<<k<<' '<<v<<endl;
for (int i=0;i<M;i++)
if ((k * i + v) % M == P)
return cout<<i<<'\n', 0;
}