#include<iostream>
using namespace std;
int main(){
int A,B,ans;
while(cin >> A >> B){
if(A == 0 && B == 0)
break;
ans = 1;
A %= 1000;
while(B != 0){
if(B % 2 == 1){
ans *= A;
ans %= 1000;
}
B /= 2;
A *= A;
A %= 1000;
}
cout << ans << endl;
}
return 0;
}
A sequence of numbers
#include<iostream>
using namespace std;
int main(){
int N,K;
long long x1,x2,x3,m,w;
cin >> N;
while(N--){
cin >> x1 >> x2 >> x3 >> K;
if(x2 - x1 == x3 - x2){
m = x2 - x1;
w = ((K-1)%200907) * (m%200907) + (x1%200907);
}
else{
m = (x2 / x1) % 200907;
K--;
w = x1 % 200907;
while(K!=0){
if(K % 2 == 1){
w =(w*m)%200907;
}
K /= 2;
m = (m*m)%200907;
}
}
cout << w % 200907 << endl;
}
return 0;
}
Tr A
#include<iostream>
using namespace std;
int main(){
int T;
cin >> T;
while(T--){
int n,k,i,j,x,sum,t;
cin >> n >> k;
int a[15][15];
int b[15][15] = {0};
int c[15][15] = {0};
for(i=0;i<n;i++){
b[i][i] = 1;
c[i][i] = 1;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cin >> x;
a[i][j] = x;
}
}
while(k != 0){
if(k % 2 == 1){
for(i=0;i<n;i++){
for(j=0;j<n;j++){
sum = 0;
for(t=0;t<n;t++){
sum += b[i][t] * a[t][j];
}
c[i][j] = sum % 9973;
}
}
}
k /= 2;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
sum = 0;
for(t=0;t<n;t++){
sum += a[i][t] * a[t][j];
}
b[i][j] = sum % 9973;
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
a[i][j] = b[i][j];
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
b[i][j] = c[i][j];
}
}
}
int summ = 0;
for(i=0;i<n;i++){
summ += c[i][i];
}
cout << summ % 9973 << endl;
}
return 0;
}