//啥也没有
/*
*/
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
// 比较两个字符串表示的数字大小,返回1表示a>=b,0表示a<b
bool compare(const string &a, const string &b) {
if (a.length() != b.length()) return a.length() > b.length();
for (int i = 0; i < a.length(); i++) {
if (a[i] != b[i]) return a[i] > b[i];
}
return true;
}
// 高精度减法,a>=b
string subtract(string a, string b) {
int n = a.length(), m = b.length();
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
string res;
int carry = 0;
for (int i = 0; i < n; i++) {
int digitA = a[i] - '0';
int digitB = i < m ? b[i] - '0' : 0;
digitA -= carry;
if (digitA < digitB) {
digitA += 10;
carry = 1;
} else {
carry = 0;
}
res.push_back((digitA - digitB) + '0');
}
while (res.size() > 1 && res.back() == '0') res.pop_back();
reverse(res.begin(), res.end());
return res;
}
// 高精度除法,返回商和余数
pair<string, string> divide(string a, string b) {
if (a == "0") return {"0", "0"};
string quotient;
string remainder;
int n = a.length();
int idx = 0;
string current;
while (idx < n) {
current.push_back(a[idx++]);
// 去除前导零
int start = 0;
while (start < current.length() && current[start] == '0') start++;
current = current.substr(start);
if (current.empty()) current = "0";
if (compare(current, b)) {
int count = 0;
string temp = current;
while (compare(temp, b)) {
temp = subtract(temp, b);
count++;
}
quotient.push_back(count + '0');
current = temp;
} else {
quotient.push_back('0');
}
}
// 去除商的前导零
int start = 0;
while (start < quotient.length() && quotient[start] == '0') start++;
quotient = quotient.substr(start);
if (quotient.empty()) quotient = "0";
// 处理余数
remainder = current;
if (remainder.empty()) remainder = "0";
return {quotient, remainder};
}
int main() {
//作者junzhe
string a, b;
cin >> a >> b;
if (b == "0") {
cout << "Invalid: division by zero" << endl;
return 0;
}
auto result = divide(a, b);
cout << result.first << endl;
cout << result.second << endl;
return 0;
}