#include<iostream>#include<cstdio>#include<cstring>
using namespace std;constint maxn =200;char s1[maxn],s2[maxn];int n;voidsolve(char*str,char*ans,int n,int&e){int len =strlen(str);int point = len;// 小数点的索引for(int i =0; i < len ; i++){if(str[i]=='.'){
point = i;break;}}int not0 = len;// 第一个非0的索引for(int i =0; i < len ; i++){if(str[i]!='.'&& str[i]!='0'){
not0 = i;break;}}// 数字为0if(not0 == len){
e =0;
ans[0]='0';
ans[1]='.';for(int i =0; i < n ; i++){
ans[2+i]='0';}
ans[n+2]='\0';}else{
e = point>not0?point-not0:point-not0+1;// 指数
ans[0]='0';
ans[1]='.';for(int i =0,j = not0 ; i < n ; i++,j++){if(j < len){if(str[j]!='.'){
ans[2+i]= str[j];}else
i--;}else
ans[2+i]='0';}
ans[2+n]='\0';}}intmain(){freopen("in.txt","r",stdin);scanf("%d %s %s",&n,s1,s2);char ans1[maxn],ans2[maxn];int e1,e2;solve(s1,ans1,n,e1);solve(s2,ans2,n,e2);if(strcmp(ans1,ans2)==0&& e1 == e2){printf("YES ");printf("%s*10^%d\n",ans1,e1);}else{printf("NO ");printf("%s*10^%d %s*10^%d\n",ans1,e1,ans2,e2);}return0;}