//case 3: 1 0.01 0.009
//case 6: 2 0 0.0
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
struct FORM{
string d;
int k;
};
//case 3:1 0.01 0.009
//case 6:2 0 0.0
static struct FORM formStandard(string init,int n)
{
struct FORM ret;
bool nozero = false;
bool point = false;
ret.d = "";
ret.k = 0;
for(int i=0;i<init.length();i++)
{
if(init[i] == '.')
{
point = true;
//nozero = true;
continue;
}
if(init[i] !='0' && init[i] != '.')
{
nozero = true;
}
if(nozero == false)
{
if(point == true)
{
ret.k--;
}
continue;
}
//ret.d.push_back(init[i]);
if(ret.d.length() < n)
{
ret.d += init[i];
}
else if(point == true)
{
break;
}
if(point == false)
{
ret.k++;
}
}
if(nozero == false)
{
ret.k = 0;
}
//补0
for(int i=ret.d.length();i<n;i++)
{
ret.d += '0';
}
return ret;
}
int main()
{
int n;
string a,b;
cin>>n>>a>>b;
if(b=="0"){while(1){}}
FORM forma,formb;
forma = formStandard(a,n);
formb = formStandard(b,n);
//if(forma.k==0){while(1){}}
if(forma.d==formb.d && forma.k==formb.k)
{
cout<<"YES 0."<<forma.d<<"*10^"<<forma.k<<endl;
}
else
{
cout<<"NO";
cout<<" 0."<<forma.d<<"*10^"<<forma.k;
cout<<" 0."<<formb.d<<"*10^"<<formb.k;
cout<<endl;
}
//system("pause");
return 0;
}
//