#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
class Solution {
public:
vector<int> mul(vector<int> &vector1, vector<int> &vector2) {
vector<int> C(vector1.size()+vector2.size(),0);
reverse(vector1.begin(),vector1.end());
reverse(vector2.begin(),vector2.end());
for (int i = 0; i < vector1.size(); ++i) {
for (int j = 0; j < vector2.size(); ++j) {
C[i+j]+=vector2[j]*vector1[i];
}
}
while (1){
C.push_back(0);
int c_size=C.size();
for (int i = 0; i < c_size-1; ++i) {
long a=C[i];
C[i]=a%10;
C[i+1]+=a/10;
}
if (C[c_size-1]<10){
break;
}
}
reverse(C.begin(),C.end());
while (C.size()>1 && C[0]==0){
C.erase(C.begin());
}
return C;
}
string multiply(string num1, string num2) {
vector <int> A,B,C;
for (int i = 0; i < num1.size(); ++i) A.push_back(num1[i]-'0');
for (int i = 0; i < num2.size(); ++i) B.push_back(num2[i]-'0');
C=mul(A,B);
string ans = "";
for (int i = 0; i < C.size(); ++i) {
ans+= to_string(C[i]);
}
return ans;
}
};
int main() {
Solution s;
string ss=s.multiply("1230","3123");
printf("%s\n",ss.c_str());
return 0;
}