output_description: If the concatenation of a and b in this order is a square number, print `Yes`;
  otherwise, print `No`.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      a b
attempt: package main
  
  import (
  	"bufio"
  	"fmt"
  	"os"
  	"strconv"
  )
  
  func main() {
  	fsc := NewFastScanner()
  	A, B := fsc.Next(), fsc.Next()
  	C := A + B
  	val, _ := strconv.Atoi(C)
  	for i := 1; i < val; i++ {
  		if i*i == val {
  			fmt.Println("Yes")
  			return
  		}
  	}
  	fmt.Println("No")
  }
  
  //template
  type FastScanner struct {
  	r   *bufio.Reader
  	buf []byte
  	p   int
  }
  
  func NewFastScanner() *FastScanner {
  	rdr := bufio.NewReaderSize(os.Stdin, 1024)
  	return &FastScanner{r: rdr}
  }
  func (s *FastScanner) Next() string {
  	s.pre()
  	start := s.p
  	for ; s.p < len(s.buf); s.p++ {
  		if s.buf[s.p] == ' ' {
  			break
  		}
  	}
  	result := string(s.buf[start:s.p])
  	s.p++
  	return result
  }
  func (s *FastScanner) NextLine() string {
  	s.pre()
  	start := s.p
  	s.p = len(s.buf)
  	return string(s.buf[start:])
  }
  func (s *FastScanner) NextInt() int {
  	v, _ := strconv.Atoi(s.Next())
  	return v
  }
  func (s *FastScanner) NextInt64() int64 {
  	v, _ := strconv.ParseInt(s.Next(), 10, 64)
  	return v
  }
  
  func (s *FastScanner) NextIntArray() []int {
  	s.pre()
  	start := s.p
  	result := []int{}
  	for ; s.p < len(s.buf)+1; s.p++ {
  		if s.p == len(s.buf) || s.buf[s.p] == ' ' {
  			v, _ := strconv.ParseInt(string(s.buf[start:s.p]), 10, 0)
  			result = append(result, int(v))
  			start = s.p + 1
  		}
  	}
  
  	return result
  }
  
  func (s *FastScanner) NextInt64Array() []int64 {
  	s.pre()
  	start := s.p
  	result := []int64{}
  	for ; s.p < len(s.buf)+1; s.p++ {
  		if s.p == len(s.buf) || s.buf[s.p] == ' ' {
  			v, _ := strconv.ParseInt(string(s.buf[start:s.p]), 10, 64)
  			result = append(result, v)
  			start = s.p + 1
  		}
  	}
  	return result
  }
  
  func (s *FastScanner) pre() {
  	if s.p >= len(s.buf) {
  		s.readLine()
  		s.p = 0
  	}
  }
  func (s *FastScanner) readLine() {
  	s.buf = make([]byte, 0)
  	for {
  		l, p, e := s.r.ReadLine()
  		if e != nil {
  			panic(e)
  		}
  		s.buf = append(s.buf, l...)
  		if !p {
  			break
  		}
  	}
  }
  
  //Max,Min
  func IntMax(a, b int) int {
  	if a < b {
  		return b
  	}
  	return a
  }
  
  func Int64Max(a, b int64) int64 {
  	if a < b {
  		return b
  	}
  	return a
  }
  func Float64Max(a, b float64) float64 {
  	if a < b {
  		return b
  	}
  	return a
  }
  
  func IntMin(a, b int) int {
  	if a > b {
  		return b
  	}
  	return a
  }
  
  func Int64Min(a, b int64) int64 {
  	if a > b {
  		return b
  	}
  	return a
  }
  func Float64Min(a, b float64) float64 {
  	if a > b {
  		return b
  	}
  	return a
  }
  
  //Gcd
  func IntGcd(a, b int) int {
  	if a < b {
  		b, a = a, b
  	}
  	if b == 0 {
  		return a
  	}
  	return IntGcd(b, a%b)
  }
  func Int64Gcd(a, b int64) int64 {
  	if a < b {
  		b, a = a, b
  	}
  	if b == 0 {
  		return a
  	}
  	return Int64Gcd(b, a%b)
  }
  
  func IntAbs(a int) int {
  	if a < 0 {
  		a *= -1
  	}
  	return a
  }
  
  func Int64Abs(a int64) int64 {
  	if a < 0 {
  		a *= -1
  	}
  	return a
  }
  
problem_description: Statement
  
  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.
samples: [{"input": "1 21", "output": "Yes\n    \n\nAs 121 = 11 \u00d7 11, it is a square number.\n\n* * *"}, {"input": "100 100", "output": "No\n    \n\n100100 is not a square number.\n\n* * *"}, {"input": "12 10", "output": "No"}]