import java.io.IOException;
import java.util.Scanner;

class Main {
    public static void main(String[] args) throws IOException {
    	 Scanner sc = new Scanner(System.in);
    	 sc.useDelimiter("\\n");//
    	 int setOfData = 0;// データセット数
    	 
         while(sc.hasNext()) {
        	 String str = sc.nextLine();
        	 String[] splitted = str.split(" ");// 空白で文字列を分割する
        	 int length = splitted.length;// 要素の数
        	 if(length == 1) { // データセット数
        		 setOfData = numOfSet(splitted); // データセット数をセットする
        	 } else if(length == 3) { // 三角形の三辺
        		 if(isRightAngle(splitted)) {
            		 System.out.println("YES");
            	 } else {
            		 System.out.println("NO");
            	 }        		 
        	 } else { // それ以外（現状は無視）
        		 
        	 }
         }
    	if (sc.ioException() != null) {
    	    throw sc.ioException();
    	}
    	
    }
    /** データセット数を取得するメソッド */
    public static int numOfSet(String[] string) {
    	return Integer.valueOf(string[0]);
    }
    
    /** 直角三角形かどうかを判断するメソッド */
    public static Boolean isRightAngle(String[] string) {
    	int x = Integer.valueOf(string[0]);
    	int y = Integer.valueOf(string[1]);
    	int z = Integer.valueOf(string[2]);
    	x = x*x;
    	y = y*y;
    	z = z*z;
    	
    	if(x == y+z || y == x+z || z == x+y) {
    		return true;
    	} else {
    		return false;
    	}
    }
} import java.io.IOException; IOException java.io import java.util.Scanner; Scanner java.util class Main {
    public static void main(String[] args) throws IOException {
    	 Scanner sc = new Scanner(System.in);
    	 sc.useDelimiter("\\n");//
    	 int setOfData = 0;// データセット数
    	 
         while(sc.hasNext()) {
        	 String str = sc.nextLine();
        	 String[] splitted = str.split(" ");// 空白で文字列を分割する
        	 int length = splitted.length;// 要素の数
        	 if(length == 1) { // データセット数
        		 setOfData = numOfSet(splitted); // データセット数をセットする
        	 } else if(length == 3) { // 三角形の三辺
        		 if(isRightAngle(splitted)) {
            		 System.out.println("YES");
            	 } else {
            		 System.out.println("NO");
            	 }        		 
        	 } else { // それ以外（現状は無視）
        		 
        	 }
         }
    	if (sc.ioException() != null) {
    	    throw sc.ioException();
    	}
    	
    }
    /** データセット数を取得するメソッド */
    public static int numOfSet(String[] string) {
    	return Integer.valueOf(string[0]);
    }
    
    /** 直角三角形かどうかを判断するメソッド */
    public static Boolean isRightAngle(String[] string) {
    	int x = Integer.valueOf(string[0]);
    	int y = Integer.valueOf(string[1]);
    	int z = Integer.valueOf(string[2]);
    	x = x*x;
    	y = y*y;
    	z = z*z;
    	
    	if(x == y+z || y == x+z || z == x+y) {
    		return true;
    	} else {
    		return false;
    	}
    }
} Main public static void main(String[] args) throws IOException {
    	 Scanner sc = new Scanner(System.in);
    	 sc.useDelimiter("\\n");//
    	 int setOfData = 0;// データセット数
    	 
         while(sc.hasNext()) {
        	 String str = sc.nextLine();
        	 String[] splitted = str.split(" ");// 空白で文字列を分割する
        	 int length = splitted.length;// 要素の数
        	 if(length == 1) { // データセット数
        		 setOfData = numOfSet(splitted); // データセット数をセットする
        	 } else if(length == 3) { // 三角形の三辺
        		 if(isRightAngle(splitted)) {
            		 System.out.println("YES");
            	 } else {
            		 System.out.println("NO");
            	 }        		 
        	 } else { // それ以外（現状は無視）
        		 
        	 }
         }
    	if (sc.ioException() != null) {
    	    throw sc.ioException();
    	}
    	
    } main {
    	 Scanner sc = new Scanner(System.in);
    	 sc.useDelimiter("\\n");//
    	 int setOfData = 0;// データセット数
    	 
         while(sc.hasNext()) {
        	 String str = sc.nextLine();
        	 String[] splitted = str.split(" ");// 空白で文字列を分割する
        	 int length = splitted.length;// 要素の数
        	 if(length == 1) { // データセット数
        		 setOfData = numOfSet(splitted); // データセット数をセットする
        	 } else if(length == 3) { // 三角形の三辺
        		 if(isRightAngle(splitted)) {
            		 System.out.println("YES");
            	 } else {
            		 System.out.println("NO");
            	 }        		 
        	 } else { // それ以外（現状は無視）
        		 
        	 }
         }
    	if (sc.ioException() != null) {
    	    throw sc.ioException();
    	}
    	
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) sc.useDelimiter("\\n") sc.useDelimiter sc "\\n" int setOfData = 0; setOfData 0 while(sc.hasNext()) {
        	 String str = sc.nextLine();
        	 String[] splitted = str.split(" ");// 空白で文字列を分割する
        	 int length = splitted.length;// 要素の数
        	 if(length == 1) { // データセット数
        		 setOfData = numOfSet(splitted); // データセット数をセットする
        	 } else if(length == 3) { // 三角形の三辺
        		 if(isRightAngle(splitted)) {
            		 System.out.println("YES");
            	 } else {
            		 System.out.println("NO");
            	 }        		 
        	 } else { // それ以外（現状は無視）
        		 
        	 }
         } sc.hasNext() sc.hasNext sc {
        	 String str = sc.nextLine();
        	 String[] splitted = str.split(" ");// 空白で文字列を分割する
        	 int length = splitted.length;// 要素の数
        	 if(length == 1) { // データセット数
        		 setOfData = numOfSet(splitted); // データセット数をセットする
        	 } else if(length == 3) { // 三角形の三辺
        		 if(isRightAngle(splitted)) {
            		 System.out.println("YES");
            	 } else {
            		 System.out.println("NO");
            	 }        		 
        	 } else { // それ以外（現状は無視）
        		 
        	 }
         } String str = sc.nextLine(); str sc.nextLine() sc.nextLine sc String[] splitted = str.split(" "); splitted str.split(" ") str.split str " " int length = splitted.length; length splitted.length splitted splitted.length if(length == 1) { // データセット数
        		 setOfData = numOfSet(splitted); // データセット数をセットする
        	 } else if(length == 3) { // 三角形の三辺
        		 if(isRightAngle(splitted)) {
            		 System.out.println("YES");
            	 } else {
            		 System.out.println("NO");
            	 }        		 
        	 } else { // それ以外（現状は無視）
        		 
        	 } length == 1 length 1 { // データセット数
        		 setOfData = numOfSet(splitted); // データセット数をセットする
        	 } setOfData = numOfSet(splitted) setOfData numOfSet(splitted) numOfSet splitted if(length == 3) { // 三角形の三辺
        		 if(isRightAngle(splitted)) {
            		 System.out.println("YES");
            	 } else {
            		 System.out.println("NO");
            	 }        		 
        	 } else { // それ以外（現状は無視）
        		 
        	 } length == 3 length 3 { // 三角形の三辺
        		 if(isRightAngle(splitted)) {
            		 System.out.println("YES");
            	 } else {
            		 System.out.println("NO");
            	 }        		 
        	 } if(isRightAngle(splitted)) {
            		 System.out.println("YES");
            	 } else {
            		 System.out.println("NO");
            	 } isRightAngle(splitted) isRightAngle splitted {
            		 System.out.println("YES");
            	 } System.out.println("YES") System.out.println System.out System System.out "YES" {
            		 System.out.println("NO");
            	 } System.out.println("NO") System.out.println System.out System System.out "NO" { // それ以外（現状は無視）
        		 
        	 } if (sc.ioException() != null) {
    	    throw sc.ioException();
    	} sc.ioException() != null sc.ioException() sc.ioException sc null {
    	    throw sc.ioException();
    	} throw sc.ioException(); sc.ioException() sc.ioException sc String[] args args /** データセット数を取得するメソッド */
    public static int numOfSet(String[] string) {
    	return Integer.valueOf(string[0]);
    } numOfSet {
    	return Integer.valueOf(string[0]);
    } return Integer.valueOf(string[0]); Integer.valueOf(string[0]) Integer.valueOf Integer string[0] string 0 String[] string string /** 直角三角形かどうかを判断するメソッド */
    public static Boolean isRightAngle(String[] string) {
    	int x = Integer.valueOf(string[0]);
    	int y = Integer.valueOf(string[1]);
    	int z = Integer.valueOf(string[2]);
    	x = x*x;
    	y = y*y;
    	z = z*z;
    	
    	if(x == y+z || y == x+z || z == x+y) {
    		return true;
    	} else {
    		return false;
    	}
    } isRightAngle {
    	int x = Integer.valueOf(string[0]);
    	int y = Integer.valueOf(string[1]);
    	int z = Integer.valueOf(string[2]);
    	x = x*x;
    	y = y*y;
    	z = z*z;
    	
    	if(x == y+z || y == x+z || z == x+y) {
    		return true;
    	} else {
    		return false;
    	}
    } int x = Integer.valueOf(string[0]); x Integer.valueOf(string[0]) Integer.valueOf Integer string[0] string 0 int y = Integer.valueOf(string[1]); y Integer.valueOf(string[1]) Integer.valueOf Integer string[1] string 1 int z = Integer.valueOf(string[2]); z Integer.valueOf(string[2]) Integer.valueOf Integer string[2] string 2 x = x*x x x*x x x y = y*y y y*y y y z = z*z z z*z z z if(x == y+z || y == x+z || z == x+y) {
    		return true;
    	} else {
    		return false;
    	} x == y+z || y == x+z || z == x+y x == y+z || y == x+z || z == x+y x == y+z x y+z y z y == x+z y x+z x z z == x+y z x+y x y {
    		return true;
    	} return true; true {
    		return false;
    	} return false; false String[] string string
import java.io.IOException;
import java.util.Scanner;

class Main {
    public static void main(String[] args) throws IOException {
    	 Scanner sc = new Scanner(System.in);
    	 sc.useDelimiter("\\n");//
    	 int setOfData = 0;// データセット数
    	 
         while(sc.hasNext()) {
        	 String str = sc.nextLine();
        	 String[] splitted = str.split(" ");// 空白で文字列を分割する
        	 int length = splitted.length;// 要素の数
        	 if(length == 1) { // データセット数
        		 setOfData = numOfSet(splitted); // データセット数をセットする
        	 } else if(length == 3) { // 三角形の三辺
        		 if(isRightAngle(splitted)) {
            		 System.out.println("YES");
            	 } else {
            		 System.out.println("NO");
            	 }        		 
        	 } else { // それ以外（現状は無視）
        		 
        	 }
         }
    	if (sc.ioException() != null) {
    	    throw sc.ioException();
    	}
    	
    }
    /** データセット数を取得するメソッド */
    public static int numOfSet(String[] string) {
    	return Integer.valueOf(string[0]);
    }
    
    /** 直角三角形かどうかを判断するメソッド */
    public static Boolean isRightAngle(String[] string) {
    	int x = Integer.valueOf(string[0]);
    	int y = Integer.valueOf(string[1]);
    	int z = Integer.valueOf(string[2]);
    	x = x*x;
    	y = y*y;
    	z = z*z;
    	
    	if(x == y+z || y == x+z || z == x+y) {
    		return true;
    	} else {
    		return false;
    	}
    }
}