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 (109+7).
Test data
There are 61 fourth of vertices: