#include #include #include #include #define rep(i,a,b) for(int i=(a);i<(b);i++) #define rrep(i,a,b) for(int i=(b)-1;i>=(a);i--) #define all(x) begin(x),end(x) #define sz(x) (int)(x).size() using namespace std; using namespace atcoder; using ll=long long; using ld=long double; using vll=vector; using vvll=vector; using pll=pair; // using mint=modint; // using BoostPoint=boost::polygon::point_data; // using Voronoi=boost::polygon::voronoi_diagram; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); ll N; cin>>N; vll p; while(N>0){ p.push_back(N%10); N/=10; } vll q=convolution_ll(p,p); ll m=sz(q); rep(i,0,m){ if(q[i]<10)continue; ll carry=q[i]/10; q[i]%=10; if(i==m-1)q.push_back(carry); else q[i+1]+=carry; } while(q.back()>=10){ ll carry=q.back()/10; q.back()%=10; q.push_back(carry); } rrep(i,0,sz(q))cout<