Թվի աստիճանի հաշվում

cmath գրադարանը տրամադրում է մի շատ հարմար ֆունկցիա pow, որը ունենալով երկու թիվ որպես արգումենտ (օրինակ pow(2, 8)) հաշվում է 282^8 աստիճանը։ Բայց այն սահմանափակվում է իր վերադարձվող տիպով, այսինքն չի կարելի հաշվել օրինակ 21002^{100} այն ուղակի չի տեղավորվի int, long long, double, long double տիպերից ոչ մեկի մեջ։ Այն շատ շատ մեծ թիվ է և կարող եք տպել և տեսնել թե ինչ արդյունք կստանա ծրագիրը այդպիսի արժեք տպելիս։

Այսքան մեծ թվերի հետ պարզ տիպերով աշխատել հնարավոր չէ, բայց մեզ կարող է հետաքրքրել ինչ-որ թվի վրա բաժանելիս ստացվող մնացորդը։ Օրինակ ինչ թիվ կստացվի եթե 21002^{100} թիվը բաժանենք 7919 և վերցնենք մնացորդը։ Բնականաբար գրելով cout << pow(2, 100) % 7919; կտա սխալ արդյունք։ Բայց կարելի է ֆունկցիա գրել, որը կնդունի 3 արգումենտ a, b, m և կհաշվի ab%ma^b \% m արտահայտության արժեքը։

Մուտքում տրված է երեք ամբողջ թիվ՝ a, b և m-ը (1 ≤ a, m ≤ 10910^9, 0 ≤ b ≤ 10610^6)։ Գրեք power անունով ֆունկցիա, որը կհաշվի ab%ma^b \% mև ելքի միակ տողում տպեք այդ արտահայտության արժեքը։

Մուտք

Ելք

2 10 17

4

Constraints

Time limit: 0.2 seconds

Memory limit: 512 MB

Output limit: 1 MB