#include using namespace std; #define ll long long #define pb push_back #define mp make_pair #define pii pair #define pll pair #define all(x) (x).begin(), (x).end() #define fi first #define se second const int nmax = 100005; int n, nr, k, P, m, mlc; char *p, a[nmax], s[nmax]; int e(), t(), f(); int main() { cin.sync_with_stdio(false); cin >> a; n = strlen(a); cin >> P >> m; for (int i = 0; i < n; i++) { if (a[i] == 'x'){ s[i] = '0'; } else{ s[i] = a[i]; } } p = s; nr = e(); for (int i = 0; i < n; i++) { if (a[i] == 'x') s[i] = '1'; else s[i] = a[i]; } p = s; k = (e() - nr + m) % m; mlc = (P - nr % m + m) % m; for (int i = 1; i <= m; i++) if ((1LL * k * i) % m == mlc) { cout << i; return 0; } return 0; } int e() { int r = t(); while (*p == '+' || *p == '-') { if (*p == '+') p++, r = (r + t()) % m; else p++, r = (r - t() + m) % m; } return r; } int t() { int r = f(); while (*p == '*') { p++, r = (1LL * r * f()) % m; } return r; } int f() { int r = 0; if (*p == '(') { p++; r = e(); p++; return r; } while (*p >= '0' && *p <= '9') { r = (r * 10 + *p - '0') % m, p++; } return r; }