Pagini recente » Cod sursa (job #2259398) | Cod sursa (job #2508806) | Cod sursa (job #2762250) | Cod sursa (job #73215) | Cod sursa (job #1445672)
#include <cstdio>
#include <cassert>
#include <algorithm>
#define _submit
#ifdef _submit
#define InFile "lgput.in"
#define OutFile "lgput.out"
#else
#define InFile "fis.in"
#define OutFile "fis.out"
#endif
typedef unsigned long long ULL;
#define MODNR 1999999973
int qpow(int x, int p) {
if (p == 0)
return 1;
else if (p == 1)
return x;
if (p % 2 == 0) {
int aux = qpow(x, p / 2);
ULL tmp = (ULL(aux) * ULL(aux)) % MODNR;
return int(tmp);
}
int aux = qpow(x, (p - 1) / 2);
ULL tmp = (ULL(aux) * ULL(aux)) % MODNR;
tmp = (tmp * ULL(x)) % MODNR;
return int(tmp);
}
int main() {
assert(freopen(InFile, "r", stdin));
assert(freopen(OutFile, "w", stdout));
int N, p;
scanf("%d%d", &N, &p);
printf("%d\n", qpow(N, p));
return 0;
}