/in/foo.cc: In function 'void dfs(int, int, int)':
/in/foo.cc:31:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < map[x].size(); ++i)
                  ~~^~~~~~~~~~~~~~~
/in/foo.cc: In member function 'void RMQ::update(int, int, int, int, int)':
/in/foo.cc:66:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   int mid = l + r >> 1;
             ~~^~~
/in/foo.cc: In member function 'int RMQ::query(int, int, int, int)':
/in/foo.cc:74:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   int mid = l + r >> 1;
             ~~^~~
/in/foo.cc: In function 'void dfs2(int, int)':
/in/foo.cc:89:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < map[x].size(); ++i) {
                  ~~^~~~~~~~~~~~~~~
/in/foo.cc:94:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < node4[x].size(); ++i)
                  ~~^~~~~~~~~~~~~~~~~
/in/foo.cc:96:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < node3[x].size(); ++i)
                  ~~^~~~~~~~~~~~~~~~~
/in/foo.cc:99:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < node[x].size(); ++i)
                  ~~^~~~~~~~~~~~~~~~
/in/foo.cc:101:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < node2[x].size(); ++i)
                  ~~^~~~~~~~~~~~~~~~~