
    // Your code here!
#include <stdio.h>
#include <math.h>
double a,b,c;
int main(){
scanf("%lf %lf",&a,&b);
c=floor(log10(b)+1);
c=a*pow(10,c)+b;
if(pow(floor(sqrt(c)),2)==c){
printf("Yes");
}else{
printf("No");
}
return 0;
}


### Prompt

Your challenge is to write a cpp solution to the following problem:

AtCoDeer the deer has found two positive integers, a and b. Determine whether the concatenation of a and b in this order is a square number.

Constraints

* 1 ≤ a,b ≤ 100
* a and b are integers.

Input

Input is given from Standard Input in the following format:


a b


Output

If the concatenation of a and b in this order is a square number, print `Yes`; otherwise, print `No`.

Examples

Input

1 21


Output

Yes


Input

100 100


Output

No


Input

12 10


Output

No

### Response

```cpp

    // Your code here!
#include <stdio.h>
#include <math.h>
double a,b,c;
int main(){
scanf("%lf %lf",&a,&b);
c=floor(log10(b)+1);
c=a*pow(10,c)+b;
if(pow(floor(sqrt(c)),2)==c){
printf("Yes");
}else{
printf("No");
}
return 0;
}


```