#1055 IP Address

239  1 s   128 MB  

Description

길이가 32인 '1'과 '0'으로 이뤄진 문자열을 입력 받아, 이를 4개의 문자열로 나누고(각 나뉜 문자열의 길이는 8), 10진법을 사용하는 IP 주소의 형태(X.Y.Z.W)로 바꾸는 프로그램을 작성하라.

문자열의 맨 앞을 0번, 그 다음을 1번, ..., 마지막을 31번이라고 할 때, X, Y, Z, W는 다음과 같이 정의된 값을 가지게 된다.

예를 들어 문자열 11001011100001001110010110000000 를 X.Y.Z.W 의 형태로 변환하는 과정을 적으면 다음과 같다.

입력 11001011100001001110010110000000
위치 X(0..7) Y(8..15) Z(16..23) W(24..31)
나눈결과 11001011 10000100 11100101 10000000
계산 27+26+23+21+20 27+22 27+26+25+22+20 27
변환결과 203 132 229 128
최종결과 203.132.229.128

계산을 할 때, 맨 앞의 문자가 1일 경우 27을 더하고, 두번째의 경우 26 를 더하고, ..., 마지막의 경우 20을 더함에 유의하라. 0일 경우에는 어떤 수도 더하지 않는다.

Input

입력의 첫 줄에는 변환 해야 하는 문자열의 개수 T가 입력된다.

그 다음 줄부터 T개의 줄에는 길이가 32인, 10진법의 IP 주소 형태로 변환해야 하는 문자열들이 입력된다.

Output

입력된 문자열을 X.Y.Z.W 의 형태로 변환한 결과를 입력된 순서대로 한줄에 하나씩 출력한다.

자세한 형식은 Sample Output을 참조한다.

Sample Input

Sample Output

4
00000000000000000000000000000000
00000011100000001111111111111111
11001011100001001110010110000000
01010000000100000000000000000001
0.0.0.0
3.128.255.255
203.132.229.128
80.16.0.1