// C++ Program to implement
// the above approach
#include <bits/stdc++.h>
#define ll long long int
using namespace std;
// Function to find a^b modulo M
ll modPower(ll a, ll b, ll M)
{
ll res = 1;
while (b) {
if (b & 1)
res = res * a % M;
a = a * a % M;
b >>= 1;
}
return res;
}
// Function to find the first and last
// M digits from N^K
void findFirstAndLastM(ll N, ll K, ll M)
{
// Calculate Last M digits
ll lastM
= modPower(N, K, (1LL) * pow(10, M));
// Calculate First M digits
ll firstM;
double y = (double)K * log10(N * 1.0);
// Extract the number after decimal
y = y - (ll)y;
// Find 10 ^ y
double temp = pow(10.0, y);
// Move the Decimal Point M - 1 digits forward
firstM = temp * (1LL) * pow(10, M - 1);
// Print the result
cout << firstM << " ";
string s = to_string(lastM);
int t = M - s.size();
while(t--)
{
cout<<0;
}
cout<<lastM<<endl;
}
// Driver Code
int main()
{
ll N = 12, K = 12, M = 4;
cin>>N>>K>>M;
findFirstAndLastM(N, K, M);
return 0;
}
Ly8gQysrIFByb2dyYW0gdG8gaW1wbGVtZW50Ci8vIHRoZSBhYm92ZSBhcHByb2FjaAojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyBGdW5jdGlvbiB0byBmaW5kIGFeYiBtb2R1bG8gTQpsbCBtb2RQb3dlcihsbCBhLCBsbCBiLCBsbCBNKQp7CiAgICBsbCByZXMgPSAxOwogICAgd2hpbGUgKGIpIHsKICAgICAgICBpZiAoYiAmIDEpCiAgICAgICAgICAgIHJlcyA9IHJlcyAqIGEgJSBNOwogICAgICAgIGEgPSBhICogYSAlIE07CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KICAgIHJldHVybiByZXM7Cn0KCi8vIEZ1bmN0aW9uIHRvIGZpbmQgdGhlIGZpcnN0IGFuZCBsYXN0Ci8vIE0gZGlnaXRzIGZyb20gTl5LCnZvaWQgZmluZEZpcnN0QW5kTGFzdE0obGwgTiwgbGwgSywgbGwgTSkKewogICAgLy8gQ2FsY3VsYXRlIExhc3QgTSBkaWdpdHMKICAgIGxsIGxhc3RNCiAgICAgICAgPSBtb2RQb3dlcihOLCBLLCAoMUxMKSAqIHBvdygxMCwgTSkpOwoKICAgIC8vIENhbGN1bGF0ZSBGaXJzdCBNIGRpZ2l0cwogICAgbGwgZmlyc3RNOwoKICAgIGRvdWJsZSB5ID0gKGRvdWJsZSlLICogbG9nMTAoTiAqIDEuMCk7CgogICAgLy8gRXh0cmFjdCB0aGUgbnVtYmVyIGFmdGVyIGRlY2ltYWwKICAgIHkgPSB5IC0gKGxsKXk7CgogICAgLy8gRmluZCAxMCBeIHkKICAgIGRvdWJsZSB0ZW1wID0gcG93KDEwLjAsIHkpOwoKICAgIC8vIE1vdmUgdGhlIERlY2ltYWwgUG9pbnQgTSAtIDEgZGlnaXRzIGZvcndhcmQKICAgIGZpcnN0TSA9IHRlbXAgKiAoMUxMKSAqIHBvdygxMCwgTSAtIDEpOwoKICAgIC8vIFByaW50IHRoZSByZXN1bHQKICAgIGNvdXQgPDwgZmlyc3RNIDw8ICIgIjsKICAgIHN0cmluZyBzID0gdG9fc3RyaW5nKGxhc3RNKTsKICAgIGludCB0ID0gTSAtIHMuc2l6ZSgpOwogICAgd2hpbGUodC0tKQogICAgewogICAgICAgIGNvdXQ8PDA7CiAgICB9CiAgICBjb3V0PDxsYXN0TTw8ZW5kbDsKCn0KCi8vIERyaXZlciBDb2RlCmludCBtYWluKCkKewogICAgbGwgTiA9IDEyLCBLID0gMTIsIE0gPSA0OwogICAgY2luPj5OPj5LPj5NOwoKICAgIGZpbmRGaXJzdEFuZExhc3RNKE4sIEssIE0pOwogICAgcmV0dXJuIDA7Cn0K