You are given a weighted tree with \(N\) vertices. You can denote the value of path of vertices \(V\) and \(U\) as XOR of weights of all edges on path from \(V\) to \(U\). Your task is to print the number of four vertices \((A, B, C, D)\) such that the value of path of vertices \(A\) and \(B\) differs from the value of path of vertices \(C\) and \(D\) in not more than one bit.
Input format
Output format
Print one integer that represents the answer for the problem modulo \(1000000007\) \((10^9+7)\).
Test data
There are \(61\) fourth of vertices: