/*稍有繁琐。
先确定=号,再确定单位。判断单位的前一个字符是否为前缀。然后确定数字的范围。
用atof将范围内的字符串放到一个字符数组里,再将其转化为数字。*/
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main()
{
char s[550];
double a=1,b=1;
char q1,q2,w;
int t;
while(scanf("%d",&t)==1)
{
int cases=1;
while(t--)
{
getchar();
gets(s);
bool ret1=false;
char c[500];
printf("Problem #%d\n",cases++);
for(int i=0; i<strlen(s); i++)
{
if(s[i]=='='&&ret1==false)
{
q1=s[i-1];
int j=i;
while(s[j]!='A'&&s[j]!='W'&&s[j]!='V')
j++;
ret1=true;
w=s[j-1];
int h=0;
bool pp=false;
if(w!='m'&&w!='M'&&w!='k')
{
for(int k=i+1; k<j; k++)
c[h++]=s[k];
c[h++]='\0';
a=atof(c);
}
else
{
for(int k=i+1; k<j-1; k++)
c[h++]=s[k];
c[h++]='\0';
a=atof(c);
if(w=='m') a=a/1000.0;
else if(w=='k') a=a*1000.0;
else if(w=='M') a=a*1000000.0;
}
}
if(s[i]=='='&&ret1)
{
q2=s[i-1];
int j=i;
while(s[j]!='A'&&s[j]!='W'&&s[j]!='V')
j++;
w=s[j-1];
int h=0;
bool pp=false;
if(w!='m'&&w!='M'&&w!='k')
{
for(int k=i+1; k<j; k++)
c[h++]=s[k];
c[h++]='\0';
b=atof(c);
}
else
{
for(int k=i+1; k<j-1; k++)
c[h++]=s[k];
c[h++]='\0';
b=atof(c);
if(w=='m') b=b/1000.0;
else if(w=='k') b=b*1000.0;
else if(w=='M') b=b*1000000.0;
}
}
}
if(q1=='U'&&q2=='I') printf("P=%.2lfW\n",a*b);
if(q1=='I'&&q2=='U') printf("P=%.2lfW\n",a*b);
if(q1=='U'&&q2=='P') printf("I=%.2lfA\n",b/a);
if(q1=='P'&&q2=='U') printf("I=%.2lfA\n",a/b);
if(q1=='I'&&q2=='P') printf("U=%.2lfV\n",b/a);
if(q1=='P'&&q2=='I') printf("U=%.2lfV\n",a/b);
printf("\n");
}
}
return 0;
}