import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 第一个整数
     * @param t string字符串 第二个整数
     * @return string字符串
     */
    public String solve (String s, String t) {
        if(s == null || t== null || s.length() == 0 || t.length() == 0){
            return "非法输入";
        }
        if(s.charAt(0) == '0' || t.charAt(0) == '0'){
            return "0";
        }
        int []data = new int[s.length()+t.length()];// 最高长度为此,可验证,比如99*99 = (100-1)(100-1) = 10000 - 1 = 9999,或者 99 * 9 = 891
        
        for(int i=s.length()-1;i>=0;i--){
            for(int j=t.length()-1;j>=0;j--){
                data[i+j+1] += (s.charAt(i) - '0')*(t.charAt(j) - '0');// 相同位置积累,比如12*21=(10+2)*(20+1)中的,1*10和20*2是处于同一个位置data[2]
            }
        }
        StringBuffer sb = new StringBuffer();
        int carry = 0;
        for(int i=data.length-1; i>0; --i){
            int temp = data[i]+carry; // 上一个的进位以及当前记录的进位和当前位          
            carry = temp/10;// 当前进位,肯定是1位数
            sb.append(temp%10);//当前位
        }
        if(carry != 0){ // 若最后有个进位
            sb.append(carry);
        }
        return sb.reverse().toString();
    }
}