#include <iostream>
using namespace std;

class FiniteField
{
    int mPrime, mD;
public:
    FiniteField(int ip = 0, int id = 0)
        :mPrime(ip), mD(id)
    {
    }
    void Show()
    {
        cout << mD<< endl;
    }
    friend istream& operator>>(istream&, const FiniteField&);
    FiniteField operator +(const FiniteField& ff)
    {
        return FiniteField(mPrime, (mD + ff.mD) % mPrime);
    }
    FiniteField operator *(const FiniteField& ff)
    {
        return FiniteField(mPrime, (mD * ff.mD) % mPrime);
    }
    FiniteField operator -(const FiniteField& ff)
    {
        return FiniteField(mPrime, (mD + (mPrime - ff.mD)) % mPrime);
    }
    FiniteField operator /(const FiniteField& ff)
    {
        int k = 1;
        for (; k < mPrime; ++k){
            if ((k*ff.mD) % mPrime == 1)
                break;
        }
        return FiniteField(mPrime, (mD * k) % mPrime);
    }
};

istream& operator>>(istream& in, const FiniteField& ff)
{
    return cin >> ff.mD;
}

//StudybarCommentBegin
int main()
{
    int prime, a, b;
    char opt;
    //while(1){    //for test  in my  computer 
    cin >> prime;  //input a prime num
    cin >> a >> opt >> b;  // input like a+b;

    FiniteField f1(prime, a), f2(prime, b), f3;  ////Show How to  define constructor
    switch (opt){
    case '+':f3 = f1 + f2; break;
    case '-':f3 = f1 - f2; break;
    case '*':f3 = f1*f2; break;
    case '/':f3 = f1 / f2; break;
    }
    f3.Show();
    //	}    // end while
}
//StudybarCommentEnd