평면 위의 정수 벡터 N개 (xi,yi)가 순서대로 주어진다. 원점에서 출발해 각 벡터를 직전 위치에서의 변위로 삼으면 경로 하나가 만들어진다. 예를 들어 벡터 (1, 2), (2, 3), (-3, -5)는 경로 (0, 0), (1, 2), (3, 5), (0, 0)을 만든다. 원점에서 끝나는 경로를 회로라고 하며, 방금 만든 경로는 회로다.
비어 있지 않은 아무 부분집합으로나 경로를 만들 수 있고, 그 경로가 회로인지 아닌지는 부분집합을 어떤 순서로 이어 붙이든 달라지지 않는다. 회로가 되는 부분집합이 몇 개인지 세어라.
예를 들어 벡터가 {(1, 2), (-1, -2), (1, 1), (-2, -3), (-1, -1)}이면 회로가 되는 부분집합은 다음 4개다.
첫째 줄에 벡터의 개수 N이 주어진다. (1≤N≤40)
다음 N개 줄에 각각 정수 x와 y가 공백으로 구분되어 주어지며, 벡터 (x,y)를 나타낸다. (∣x∣≤10, ∣y∣≤10, (x,y)=(0,0))
주어지는 벡터는 모두 서로 다르다.
회로가 되는, 비어 있지 않은 부분집합의 개수를 출력한다. 답은 1010보다 작음이 보장된다.