/in/foo.cc: In instantiation of 'void convolution::poly<mint, g>::init(int) [with mint = convolution::modint::mint<998244353>; int g = 3]':
/in/foo.cc:73:13: required from 'void convolution::poly<mint, g>::ntt(int, int) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:102:12: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::convolution_ntt(convolution::poly<mint, g>) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:116:53: required from 'convolution::poly<mint, g>& convolution::poly<mint, g>::operator*=(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:117:56: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::operator*(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:152:25: required from here
/in/foo.cc:63:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(r.size() < limit) r.resize(limit);
~~~~~~~~~^~~~~~~
/in/foo.cc: In instantiation of 'convolution::modint::mint<m>& convolution::modint::mint<m>::operator+=(const convolution::modint::mint<m>&) [with int m = 998244353]':
/in/foo.cc:35:56: required from 'convolution::modint::mint<m> convolution::modint::mint<m>::operator+(const convolution::modint::mint<m>&) [with int m = 998244353]'
/in/foo.cc:87:30: required from 'void convolution::poly<mint, g>::ntt(int, int) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:102:12: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::convolution_ntt(convolution::poly<mint, g>) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:116:53: required from 'convolution::poly<mint, g>& convolution::poly<mint, g>::operator*=(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:117:56: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::operator*(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:152:25: required from here
/in/foo.cc:31:54: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
mint& operator+=(const mint& t){ x += t.x; if (x >= mod) x -= mod; return *this; }
~~^~~~~~
/in/foo.cc: In instantiation of 'convolution::modint::mint<m>& convolution::modint::mint<m>::operator-=(const convolution::modint::mint<m>&) [with int m = 998244353]':
/in/foo.cc:36:56: required from 'convolution::modint::mint<m> convolution::modint::mint<m>::operator-(const convolution::modint::mint<m>&) [with int m = 998244353]'
/in/foo.cc:88:36: required from 'void convolution::poly<mint, g>::ntt(int, int) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:102:12: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::convolution_ntt(convolution::poly<mint, g>) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:116:53: required from 'convolution::poly<mint, g>& convolution::poly<mint, g>::operator*=(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:117:56: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::operator*(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
/in/foo.cc:152:25: required from here
/in/foo.cc:32:60: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
mint& operator-=(const mint& t){ x += mod - t.x; if (x >= mod) x -= mod; return *this; }
~~^~~~~~