#include <bits/stdc++.h>
using namespace std;
#define all(ac) ac.begin(), ac.end()
#define fi first
#define se second
#define pii pair <int, int>
#define task "tet"
#define db double
#define pb push_back
#define eb emplace_back
#define pci pair <char, int>
#define int long long
 
int prio(char a) {
    if(a == '(' || a == ')') return 0;
    if(a == '+' || a == '-') return 1;
    return 2;
}
 
void add(char oper, stack <char> &stk, queue <pci> &q) {
    while(stk.size() && prio(stk.top()) >= prio(oper)) {
        q.push({stk.top(), 0});
        stk.pop();
    }
    stk.push(oper);
    return;
}
 
int32_t main() {
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    if(fopen(task".inp", "r")) {
        freopen(task".inp", "r", stdin);
        freopen(task".out", "w", stdout);
    }
 
    string s; cin >> s;
    s = "(" + s + ")";
    int p, M; cin >> p >> M;
 
    stack <char> oper;
    queue <pci> q;
    bool ok = false;
    int cur = 0;
    for(char c : s) {
        if(c >= '0' && c <= '9') ok = true, cur = cur * 10 + c - '0';
        else {
            if(ok == true) q.push({'!', cur}), cur = 0, ok = false;
            if(c == '(') oper.push(c);
            else
            if(c == ')') {
                while(true) {
                    char op = oper.top();
                    oper.pop();
                    if(op == '(') break;
                    q.push({op, 0});
                }
            }
            else
            if(c == 'x') q.push({c, 0});
            else add(c, oper, q);
        }
    }
 
    stack <pii> stk;
    while(q.size()) {
        pci cur = q.front();
        q.pop();
        if(cur.fi == '!') stk.push({0, cur.se});
        else
        if(cur.fi == 'x') stk.push({1, 0});
        else {
            pii b = stk.top(); stk.pop();
            pii a = stk.top(); stk.pop();
 
            pii res;
            if(cur.fi == '+') res.fi = a.fi + b.fi, res.se = a.se + b.se;
            else
            if(cur.fi == '-') res.fi = a.fi - b.fi, res.se = a.se - b.se;
            else {
                res.fi = a.fi * b.se + b.fi * a.se;
                res.se = b.se * a.se;
            }
            stk.push(res);
        }
    }
 
    pii val = stk.top();
    int x = 0;
    while(true) {
        int w = val.fi * x + val.se;
        if(w % M == p) return cout << x, 0;
        x++;
    }
    return 0;
}
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgYWxsKGFjKSBhYy5iZWdpbigpLCBhYy5lbmQoKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgcGlpIHBhaXIgPGludCwgaW50PgojZGVmaW5lIHRhc2sgInRldCIKI2RlZmluZSBkYiBkb3VibGUKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBlYiBlbXBsYWNlX2JhY2sKI2RlZmluZSBwY2kgcGFpciA8Y2hhciwgaW50PgojZGVmaW5lIGludCBsb25nIGxvbmcKCmludCBwcmlvKGNoYXIgYSkgewogICAgaWYoYSA9PSAnKCcgfHwgYSA9PSAnKScpIHJldHVybiAwOwogICAgaWYoYSA9PSAnKycgfHwgYSA9PSAnLScpIHJldHVybiAxOwogICAgcmV0dXJuIDI7Cn0KCnZvaWQgYWRkKGNoYXIgb3Blciwgc3RhY2sgPGNoYXI+ICZzdGssIHF1ZXVlIDxwY2k+ICZxKSB7CiAgICB3aGlsZShzdGsuc2l6ZSgpICYmIHByaW8oc3RrLnRvcCgpKSA+PSBwcmlvKG9wZXIpKSB7CiAgICAgICAgcS5wdXNoKHtzdGsudG9wKCksIDB9KTsKICAgICAgICBzdGsucG9wKCk7CiAgICB9CiAgICBzdGsucHVzaChvcGVyKTsKICAgIHJldHVybjsKfQoKaW50MzJfdCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZSgwKSwgY291dC50aWUoMCk7CiAgICBpZihmb3Blbih0YXNrIi5pbnAiLCAiciIpKSB7CiAgICAgICAgZnJlb3Blbih0YXNrIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKHRhc2siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIAogICAgc3RyaW5nIHM7IGNpbiA+PiBzOwogICAgcyA9ICIoIiArIHMgKyAiKSI7CiAgICBpbnQgcCwgTTsgY2luID4+IHAgPj4gTTsKICAgIAogICAgc3RhY2sgPGNoYXI+IG9wZXI7CiAgICBxdWV1ZSA8cGNpPiBxOwogICAgYm9vbCBvayA9IGZhbHNlOwogICAgaW50IGN1ciA9IDA7CiAgICBmb3IoY2hhciBjIDogcykgewogICAgICAgIGlmKGMgPj0gJzAnICYmIGMgPD0gJzknKSBvayA9IHRydWUsIGN1ciA9IGN1ciAqIDEwICsgYyAtICcwJzsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaWYob2sgPT0gdHJ1ZSkgcS5wdXNoKHsnIScsIGN1cn0pLCBjdXIgPSAwLCBvayA9IGZhbHNlOwogICAgICAgICAgICBpZihjID09ICcoJykgb3Blci5wdXNoKGMpOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmKGMgPT0gJyknKSB7CiAgICAgICAgICAgICAgICB3aGlsZSh0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgY2hhciBvcCA9IG9wZXIudG9wKCk7CiAgICAgICAgICAgICAgICAgICAgb3Blci5wb3AoKTsKICAgICAgICAgICAgICAgICAgICBpZihvcCA9PSAnKCcpIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIHEucHVzaCh7b3AsIDB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmKGMgPT0gJ3gnKSBxLnB1c2goe2MsIDB9KTsKICAgICAgICAgICAgZWxzZSBhZGQoYywgb3BlciwgcSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICBzdGFjayA8cGlpPiBzdGs7CiAgICB3aGlsZShxLnNpemUoKSkgewogICAgICAgIHBjaSBjdXIgPSBxLmZyb250KCk7CiAgICAgICAgcS5wb3AoKTsKICAgICAgICBpZihjdXIuZmkgPT0gJyEnKSBzdGsucHVzaCh7MCwgY3VyLnNlfSk7CiAgICAgICAgZWxzZQogICAgICAgIGlmKGN1ci5maSA9PSAneCcpIHN0ay5wdXNoKHsxLCAwfSk7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHBpaSBiID0gc3RrLnRvcCgpOyBzdGsucG9wKCk7CiAgICAgICAgICAgIHBpaSBhID0gc3RrLnRvcCgpOyBzdGsucG9wKCk7CiAgICAgICAgICAgIAogICAgICAgICAgICBwaWkgcmVzOwogICAgICAgICAgICBpZihjdXIuZmkgPT0gJysnKSByZXMuZmkgPSBhLmZpICsgYi5maSwgcmVzLnNlID0gYS5zZSArIGIuc2U7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgaWYoY3VyLmZpID09ICctJykgcmVzLmZpID0gYS5maSAtIGIuZmksIHJlcy5zZSA9IGEuc2UgLSBiLnNlOwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHJlcy5maSA9IGEuZmkgKiBiLnNlICsgYi5maSAqIGEuc2U7CiAgICAgICAgICAgICAgICByZXMuc2UgPSBiLnNlICogYS5zZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBzdGsucHVzaChyZXMpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgcGlpIHZhbCA9IHN0ay50b3AoKTsKICAgIGludCB4ID0gMDsKICAgIHdoaWxlKHRydWUpIHsKICAgICAgICBpbnQgdyA9IHZhbC5maSAqIHggKyB2YWwuc2U7CiAgICAgICAgaWYodyAlIE0gPT0gcCkgcmV0dXJuIGNvdXQgPDwgeCwgMDsKICAgICAgICB4Kys7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==