./Main.cpp: In instantiation of 'void LazySegmentTree<Info, Tag>::init(std::vector<T>) [with T = Info; Info = Info; Tag = Tag]':
./Main.cpp:24:13: required from 'LazySegmentTree<Info, Tag>::LazySegmentTree(std::vector<T>) [with T = Info; Info = Info; Tag = Tag]'
24 | init(_init);
| ~~~~^~~~~~~
./Main.cpp:142:36: required from here
142 | LazySegmentTree<Info, Tag> tr(b);
| ^
./Main.cpp:31:28: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
31 | info.assign(n << 2 + 1, Info());
| ~~^~~
./Main.cpp:32:27: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
32 | tag.assign(n << 2 + 1, Tag());
| ~~^~~
./Main.cpp: In instantiation of 'LazySegmentTree<Info, Tag>::init<Info>(std::vector<Info>)::<lambda(auto:64, long long int, long long int, long long int)> [with auto:64 = LazySegmentTree<Info, Tag>::init<Info>(std::vector<Info>)::<lambda(auto:64, long long int, long long int, long long int)>]':
./Main.cpp:45:14: required from 'void LazySegmentTree<Info, Tag>::init(std::vector<T>) [with T = Info; Info = Info; Tag = Tag]'
45 | build(build, 1, 1, n);
| ~~~~~^~~~~~~~~~~~~~~~
./Main.cpp:24:13: required from 'LazySegmentTree<Info, Tag>::LazySegmentTree(std::vector<T>) [with T = Info; Info = Info; Tag = Tag]'
24 | init(_init);
| ~~~~^~~~~~~
./Main.cpp:142:36: required from here
142 | LazySegmentTree<Info, Tag> tr(b);
| ^
./Main.cpp:40:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
40 | int mid = l + r >> 1;
| ~~^~~
./Main.cpp: In instantiation of 'Info LazySegmentTree<Info, Tag>::query(long long int, long long int, long long int, long long int, long long int) [with Info = Info; Tag = Tag]':
./Main.cpp:90:44: required from 'Info LazySegmentTree<Info, Tag>::query(long long int, long long int) [with Info = Info; Tag = Tag]'
90 | Info query(int l, int r) { return query(l, r, 1, 1, n); }
| ~~~~~^~~~~~~~~~~~~~~
./Main.cpp:152:32: required from here
152 | int temp = tr.query(x + 1, x + 1).k;
| ~~~~~~~~^~~~~~~~~~~~~~
./Main.cpp:86:22: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
86 | int mid = pl + pr >> 1;
| ~~~^~~~
./Main.cpp: In instantiation of 'void LazySegmentTree<Info, Tag>::modify(long long int, long long int, long long int, long long int, const Info&) [with Info = Info; Tag = Tag]':
./Main.cpp:75:47: required from 'void LazySegmentTree<Info, Tag>::modify(long long int, const Info&) [with Info = Info; Tag = Tag]'
75 | void modify(int p, const Info &v) { modify(1, 1, n, p, v); }
| ~~~~~~^~~~~~~~~~~~~~~
./Main.cpp:154:22: required from here
154 | tr.modify(x, Info{temp});
| ~~~~~~~~~^~~~~~~~~~~~~~~
./Main.cpp:67:22: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
67 | int mid = pl + pr >> 1;
| ~~~^~~~
./Main.cpp: In instantiation of 'void LazySegmentTree<Info, Tag>::pushdown(long long int, long long int, long long int) [with Info = Info; Tag = Tag]':
./Main.cpp:87:9: required from 'Info LazySegmentTree<Info, Tag>::query(long long int, long long int, long long int, long long int, long long int) [with Info = Info; Tag = Tag]'
87 | pushdown(p, pl, pr);
| ^~~~~~~~
./Main.cpp:90:44: required from 'Info LazySegmentTree<Info, Tag>::query(long long int, long long int) [with Info = Info; Tag = Tag]'
90 | Info query(int l, int r) { return query(l, r, 1, 1, n); }
| ~~~~~^~~~~~~~~~~~~~~
./Main.cpp:152:32: required from here
152 | int temp = tr.query(x + 1, x + 1).k;
| ~~~~~~~~^~~~~~~~~~~~~~
./Main.cpp:55:22: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
55 | int mid = pl + pr >> 1;
| ~~~^~~~