무너진 도로망

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

Failland 왕국에는 $n$개의 마을이 있다. 예전에는 (복잡한 다리 체계를 이용해) 어떤 두 도로도 교차하지 않으면서 모든 마을 쌍을 직접 잇는 훌륭한 도로망이 있었다. 그런데 최근 도로 보수 조합이 마을마다 하나씩, 총 $n$개의 독립된 지부로 갈라졌다. 지부들 사이의 반목이 심해서, 각 지부는 다른 지부가 관할하는 마을로 이어지는 도로의 보수를 완강히 거부한다. 처음에는 각 지부가 마을을 하나씩만 관할했으므로, 곧 모든 도로가 완전히 망가졌다.

현명한 왕은 칙령으로 상황을 개선하기로 했다. 여러 차례의 칙령을 통해 왕은 일부 지부에게 다시 합칠 것을 명령했다. 명령을 받은 인부들은 (목이 잘리는 것 말고 다른 선택지가 없었으니 당연히) 이에 따랐고, 해당 지부들은 즉시 하나로 합쳐졌다. 그러나 칙령에 달리 명시하지 않았고 인부들은 게을렀으므로, 합병 과정에서 보수 중인 도로 집합은 바뀌지 않았다. 합쳐진 지부는 이전에 각자 보수하던 도로만 그대로 보수했다.

이에 왕은 또 다른 종류의 칙령을 내리기 시작했다. 어떤 지부가 관할하는 마을들 사이에서 망가진 모든 도로를 즉시 복구하라는 명령이었다. 왕은 지부를 합치고 일을 시키는 이 과정을 여러 번 반복했고, 마침내 하나의 지부만 남자 문제가 해결되었다고 여기고 휴가를 떠났다.

그러나 곧 시민들은 여전히 무언가 잘못되어 도로가 너무 적다는 것을 알아챘다. 조사해 보니, 어떤 지부가 망가진 도로를 모두 복구하라는 명령을 받으면, 인부들은 이전에 보수하던 도로는 더 이상 보수하지 않아도 된다고 멋대로 판단했고, 그런 도로들은 금세 다시 망가졌던 것이다.

왕을 휴가에서 돌아오게 하려고, 시민들은 어떤 두 마을도 보수된 도로로 직접 이어지지 않는, 가능한 한 많은 마을을 찾기로 했다. 당신은 그러한 마을의 최대 개수를 구하면 된다.

입력

입력은 여러 개의 시나리오로 이루어진다. 각 시나리오는 한 줄이며, 왕이 내린 칙령의 순서(따라서 현재의 도로 상태)를 나타내는 식(expression)을 하나 담는다. 식은 다음 중 하나이다.

  • V : 한 지부가 관할하는 마을 하나를 뜻한다.
  • U $e_1$ $e_2$ : $e_1$과 $e_2$는 각각 서로 다른 지부가 관할하는, 서로소인 마을 집합을 나타내는 식이다. U $e_1$ $e_2$는 왕이 이 두 지부에게 합치라고 명령한 뒤의 상태를 뜻한다. 즉 합쳐진 지부는 $e_1$과 $e_2$의 모든 마을을 관할하며, 보수하는 도로는 이전과 같다($e_1$과 $e_2$가 각각 보수하던 도로의 합집합).
  • C $e$ : 식 $e$가 나타내는 지부가, 지금까지 소홀히 했던 도로를 복구하라는 명령을 받은 뒤의 상태를 뜻한다. 이 지부가 관할하는 마을은 그대로지만, 이제는 명령을 받기 전에 보수하지 않던 도로만 정확히 보수한다. 물론 같은 지부가 관할하는 두 마을을 잇는 도로만 대상이다. 이전에 보수하던 도로는 더 이상 보수하지 않으며 즉시 망가진 것으로 본다.

예를 들어 C U U V V V는 하나의 지부가 관할하는 세 마을과, 이들 사이의 세 도로가 모두 완벽한 상태(삼각형을 이룸)인 땅을 나타낸다. U C U U V V V C U U V V V는 그런 삼각형 두 개를 합친, 여섯 마을로 이루어진 땅을 나타낸다. C U C U U V V V C U U V V V는 같은 땅에서 소홀히 한 도로를 복구하라는 칙령이 내려진 뒤의 상태를 나타낸다. 이제 이 땅에는 여섯 마을과 9개의 도로가 있다. 두 삼각형에 속했던 여섯 도로를 제외한, 모든 마을 쌍 사이의 도로가 존재한다.

입력의 각 줄은 최대 200 000자이다.

출력

각 시나리오마다, 보수된 도로로 직접 이어진 마을이 하나도 없도록 고를 수 있는 마을의 최대 개수를, 정수 하나로 한 줄에 출력한다.