/*


import cpp
import math

let (a, b) = unpack(str, str)
let x = parseInt(a & b)
let sq = int(sqrt(float(x)))
if sq*sq == x:
  println "Yes"
else:
  println "No"


*/

#include <stdint.h>
typedef int8_t NI8;
typedef int16_t NI16;
typedef int32_t NI32;
typedef int64_t NI64;
typedef uint8_t NU8;
typedef uint16_t NU16;
typedef uint32_t NU32;
typedef uint64_t NU64;
typedef NI64 NI;
typedef NU64 NU;
typedef float NF32;
typedef double NF64;
typedef double NF;
typedef bool NIM_BOOL;
#define NIM_TRUE true
#define NIM_FALSE false
typedef char NIM_CHAR;
typedef char* NCSTRING;
#define SEQ_DECL_SIZE

#define N_INLINE(rettype, name) inline rettype name
#define N_NOINLINE(rettype, name) rettype __attribute__((noinline)) name
#define N_NIMCALL(rettype, name) rettype name
#define N_NIMCALL_PTR(rettype, name) rettype (*name)
#define N_CDECL(rettype, name) rettype name
#define NIM_CONST const
#define NIM_EXTERNC extern "C"
#define N_LIB_PRIVATE

#define all(x) x.begin(), x.end()




#include <string>
#include <math.h>
#include <iostream>
struct tyTuple_HnjX0yhMfeuAnOAbNSjlmA;
struct tyTuple_HnjX0yhMfeuAnOAbNSjlmA {
std::string Field0;
std::string Field1;
};
N_LIB_PRIVATE N_NIMCALL(std::string, readStr_m7rJvHrcgi9bjM3MZ2r8tmw)(void);
NIM_EXTERNC N_NOINLINE(void, systemInit000)(void);
NIM_EXTERNC N_NOINLINE(void, systemDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_macrosInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_macrosDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_iostreamInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_iostreamDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_vectorInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_vectorDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_cppstringInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_cppstringDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_queueInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_queueDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_mapInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_mapDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_algorithmInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_algorithmDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_proutilsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_proutilsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_cppInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimprocon_cppDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_mathInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_mathDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void);
NIM_EXTERNC N_NOINLINE(void, bDatInit000)(void);
std::string a_4e9ag3jsIPCVOPsZaHxQYPw;
std::string b_VfpOVfhqgo3G8cRWFrH4hg;
NI x_pMJZKtrfpWPO3i2ytJjBvQ;
NI sq_XeNR9c2OftQB9c1reZVmMPNg;
void PreMainInner(void) {
	systemInit000();
	stdlib_macrosDatInit000();
	nimprocon_iostreamDatInit000();
	nimprocon_vectorDatInit000();
	nimprocon_cppstringDatInit000();
	nimprocon_queueDatInit000();
	nimprocon_mapDatInit000();
	nimprocon_algorithmDatInit000();
	nimprocon_proutilsDatInit000();
	nimprocon_cppDatInit000();
	stdlib_mathDatInit000();
	bDatInit000();
	stdlib_macrosInit000();
	nimprocon_iostreamInit000();
	nimprocon_vectorInit000();
	nimprocon_cppstringInit000();
	nimprocon_queueInit000();
	nimprocon_mapInit000();
	nimprocon_algorithmInit000();
	nimprocon_proutilsInit000();
	nimprocon_cppInit000();
	stdlib_mathInit000();
}
void PreMain(void) {
	void (*volatile inner)(void);
	systemDatInit000();
	inner = PreMainInner;
	(*inner)();
}
int cmdCount;
char** cmdLine;
char** gEnv;
N_CDECL(void, NimMainInner)(void) {
	NimMainModule();
}
N_CDECL(void, NimMain)(void) {
	void (*volatile inner)(void);
	PreMain();
	inner = NimMainInner;
	(*inner)();
}
int main(void) {
	NimMain();
	return 0;
}
NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void) {
	tyTuple_HnjX0yhMfeuAnOAbNSjlmA T1_;
	NF T2_;
	T1_.Field0 = readStr_m7rJvHrcgi9bjM3MZ2r8tmw();
	T1_.Field1 = readStr_m7rJvHrcgi9bjM3MZ2r8tmw();
	a_4e9ag3jsIPCVOPsZaHxQYPw = T1_.Field0;
	b_VfpOVfhqgo3G8cRWFrH4hg = T1_.Field1;
	x_pMJZKtrfpWPO3i2ytJjBvQ = std::stoi(a_4e9ag3jsIPCVOPsZaHxQYPw + b_VfpOVfhqgo3G8cRWFrH4hg);
	T2_ = (NF)0;
	T2_ = sqrt(((NF) (x_pMJZKtrfpWPO3i2ytJjBvQ)));
	sq_XeNR9c2OftQB9c1reZVmMPNg = ((NI) (T2_));
	{
		if (!((NI)(sq_XeNR9c2OftQB9c1reZVmMPNg * sq_XeNR9c2OftQB9c1reZVmMPNg) == x_pMJZKtrfpWPO3i2ytJjBvQ)) goto LA5_;
{		std::cout << "Yes";
		std::cout << std::endl;
}	}
	goto LA3_;
	LA5_: ;
	{
		std::cout << "No";
		std::cout << std::endl;
	}
	LA3_: ;
}
NIM_EXTERNC N_NOINLINE(void, bDatInit000)(void) {
}



struct Exception;
struct RootObj;
struct TNimType;
struct TNimNode;
struct NimStringDesc;
struct TGenericSeq;
struct tySequence_uB9b75OUPRENsBAu4AnoePA;
struct tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA;
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc_hgOQFBQi19biNdOUUkFOOxA) (Exception* e);
typedef N_NIMCALL_PTR(void, tyProc_T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc : public TGenericSeq {
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct Exception : public RootObj {
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence_uB9b75OUPRENsBAu4AnoePA* trace;
Exception* up;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tySequence_uB9b75OUPRENsBAu4AnoePA : TGenericSeq {
  tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};
NIM_BOOL nimvm_IAxmsqnME4Jmed24hOgrFQ;
NI nim_program_result;
tyProc_hgOQFBQi19biNdOUUkFOOxA globalRaiseHook_JbO1ti4ULxrw54m4zNPbpA;
tyProc_hgOQFBQi19biNdOUUkFOOxA localRaiseHook_EIvMhANBvB9cp2Ezvt29cADg;
tyProc_T4eqaYlFJYZUv9aG9b1TV0bQ outOfMemHook_kZNaA7u1MfSW5ZeoGvw8xg;
NIM_EXTERNC N_NOINLINE(void, systemInit000)(void) {
	nimvm_IAxmsqnME4Jmed24hOgrFQ = NIM_FALSE;
}
NIM_EXTERNC N_NOINLINE(void, systemDatInit000)(void) {
}



NIM_EXTERNC N_NOINLINE(void, nimprocon_cppInit000)(void) {
}
NIM_EXTERNC N_NOINLINE(void, nimprocon_cppDatInit000)(void) {
}



#include <iostream>
NIM_EXTERNC N_NOINLINE(void, nimprocon_iostreamInit000)(void) {
	std::cin.tie(((NI) 0));
	std::ios::sync_with_stdio(NIM_FALSE);
}
NIM_EXTERNC N_NOINLINE(void, nimprocon_iostreamDatInit000)(void) {
}



NIM_EXTERNC N_NOINLINE(void, stdlib_macrosInit000)(void) {
}
NIM_EXTERNC N_NOINLINE(void, stdlib_macrosDatInit000)(void) {
}



NIM_EXTERNC N_NOINLINE(void, nimprocon_vectorInit000)(void) {
}
NIM_EXTERNC N_NOINLINE(void, nimprocon_vectorDatInit000)(void) {
}



NIM_EXTERNC N_NOINLINE(void, nimprocon_cppstringInit000)(void) {
}
NIM_EXTERNC N_NOINLINE(void, nimprocon_cppstringDatInit000)(void) {
}



NIM_EXTERNC N_NOINLINE(void, nimprocon_queueInit000)(void) {
}
NIM_EXTERNC N_NOINLINE(void, nimprocon_queueDatInit000)(void) {
}



NIM_EXTERNC N_NOINLINE(void, nimprocon_mapInit000)(void) {
}
NIM_EXTERNC N_NOINLINE(void, nimprocon_mapDatInit000)(void) {
}



NIM_EXTERNC N_NOINLINE(void, nimprocon_algorithmInit000)(void) {
}
NIM_EXTERNC N_NOINLINE(void, nimprocon_algorithmDatInit000)(void) {
}



#include <string>
#include <iostream>
N_LIB_PRIVATE N_NIMCALL(std::string, readStr_m7rJvHrcgi9bjM3MZ2r8tmw)(void) {
	std::string result;
	std::string s;
{	std::cin >> s;
	result = s;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, nimprocon_proutilsInit000)(void) {
}
NIM_EXTERNC N_NOINLINE(void, nimprocon_proutilsDatInit000)(void) {
}



NIM_EXTERNC N_NOINLINE(void, stdlib_mathInit000)(void) {
}
NIM_EXTERNC N_NOINLINE(void, stdlib_mathDatInit000)(void) {
}



Measured memory_bytes: 256