
object Main {
  def main(args: Array[String]): Unit = {
    val in = new java.util.Scanner(System.in)
    val n = in.nextInt()
    val result = getResult(in, n)
//    print(result)
  }
  
  def getResult(in:java.util.Scanner, n:Int ):String ={
    if (n == 0) return ""
    val list = List.fill(3)(in.nextInt)
    val l = list.sorted
    if(isRight(l)){
      println("YES")
      return "YES\n" + getResult(in,n-1)
    }else{
      println("No")
      return "No\n" + getResult(in, n-1)
    }
    
  }
  
  def isRight(l:List[Int]):Boolean ={
    val a = l.head
    val b = l.tail.head
    val c = l.tail.tail.head
    if(a*a + b*b  == c*c){
      return true
    }else{
      return false
    }
  }
  
}