

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{

	public static void main(String argv[]) throws IOException {
		InputStreamReader is = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(is);
		String str;
		String triangle_side_str[] = new String[3];
		int max = 0;
		int remain[] = new int[2];
		int triangle_side_int[] = new int[3];
		int N = Integer.parseInt(br.readLine());

		for (int j = 0; j < N; j++) {
			str = br.readLine();
			remain[0] = 0;
			remain[1] = 0;
			max = 0;
			triangle_side_str = str.split(" ");

			for (int i = 0; i < 3; i++) {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			}
			// System.out.println(max);
			// System.out.println(remain[0]);
			// System.out.println(remain[1]);
			if (Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2)) {
				System.out.println("YES");
			} else
				System.out.println("NO");

		}

	}

} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main{

	public static void main(String argv[]) throws IOException {
		InputStreamReader is = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(is);
		String str;
		String triangle_side_str[] = new String[3];
		int max = 0;
		int remain[] = new int[2];
		int triangle_side_int[] = new int[3];
		int N = Integer.parseInt(br.readLine());

		for (int j = 0; j < N; j++) {
			str = br.readLine();
			remain[0] = 0;
			remain[1] = 0;
			max = 0;
			triangle_side_str = str.split(" ");

			for (int i = 0; i < 3; i++) {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			}
			// System.out.println(max);
			// System.out.println(remain[0]);
			// System.out.println(remain[1]);
			if (Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2)) {
				System.out.println("YES");
			} else
				System.out.println("NO");

		}

	}

} Main public static void main(String argv[]) throws IOException {
		InputStreamReader is = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(is);
		String str;
		String triangle_side_str[] = new String[3];
		int max = 0;
		int remain[] = new int[2];
		int triangle_side_int[] = new int[3];
		int N = Integer.parseInt(br.readLine());

		for (int j = 0; j < N; j++) {
			str = br.readLine();
			remain[0] = 0;
			remain[1] = 0;
			max = 0;
			triangle_side_str = str.split(" ");

			for (int i = 0; i < 3; i++) {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			}
			// System.out.println(max);
			// System.out.println(remain[0]);
			// System.out.println(remain[1]);
			if (Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2)) {
				System.out.println("YES");
			} else
				System.out.println("NO");

		}

	} main {
		InputStreamReader is = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(is);
		String str;
		String triangle_side_str[] = new String[3];
		int max = 0;
		int remain[] = new int[2];
		int triangle_side_int[] = new int[3];
		int N = Integer.parseInt(br.readLine());

		for (int j = 0; j < N; j++) {
			str = br.readLine();
			remain[0] = 0;
			remain[1] = 0;
			max = 0;
			triangle_side_str = str.split(" ");

			for (int i = 0; i < 3; i++) {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			}
			// System.out.println(max);
			// System.out.println(remain[0]);
			// System.out.println(remain[1]);
			if (Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2)) {
				System.out.println("YES");
			} else
				System.out.println("NO");

		}

	} InputStreamReader is = new InputStreamReader(System.in); is new InputStreamReader(System.in) BufferedReader br = new BufferedReader(is); br new BufferedReader(is) String str; str String triangle_side_str[] = new String[3]; triangle_side_str new String[3] 3 int max = 0; max 0 int remain[] = new int[2]; remain new int[2] 2 int triangle_side_int[] = new int[3]; triangle_side_int new int[3] 3 int N = Integer.parseInt(br.readLine()); N Integer.parseInt(br.readLine()) Integer.parseInt Integer br.readLine() br.readLine br for (int j = 0; j < N; j++) {
			str = br.readLine();
			remain[0] = 0;
			remain[1] = 0;
			max = 0;
			triangle_side_str = str.split(" ");

			for (int i = 0; i < 3; i++) {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			}
			// System.out.println(max);
			// System.out.println(remain[0]);
			// System.out.println(remain[1]);
			if (Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2)) {
				System.out.println("YES");
			} else
				System.out.println("NO");

		} int j = 0; int j = 0; j 0 j < N j N j++ j++ j {
			str = br.readLine();
			remain[0] = 0;
			remain[1] = 0;
			max = 0;
			triangle_side_str = str.split(" ");

			for (int i = 0; i < 3; i++) {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			}
			// System.out.println(max);
			// System.out.println(remain[0]);
			// System.out.println(remain[1]);
			if (Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2)) {
				System.out.println("YES");
			} else
				System.out.println("NO");

		} {
			str = br.readLine();
			remain[0] = 0;
			remain[1] = 0;
			max = 0;
			triangle_side_str = str.split(" ");

			for (int i = 0; i < 3; i++) {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			}
			// System.out.println(max);
			// System.out.println(remain[0]);
			// System.out.println(remain[1]);
			if (Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2)) {
				System.out.println("YES");
			} else
				System.out.println("NO");

		} str = br.readLine() str br.readLine() br.readLine br remain[0] = 0 remain[0] remain 0 0 remain[1] = 0 remain[1] remain 1 0 max = 0 max 0 triangle_side_str = str.split(" ") triangle_side_str str.split(" ") str.split str " " for (int i = 0; i < 3; i++) {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			} int i = 0; int i = 0; i 0 i < 3 i 3 i++ i++ i {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			} {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			} triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]) triangle_side_int[i] triangle_side_int i Integer.parseInt(triangle_side_str[i]) Integer.parseInt Integer triangle_side_str[i] triangle_side_str i if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				} max <= triangle_side_int[i] max triangle_side_int[i] triangle_side_int i {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max; remain[1] == 0 remain[1] remain 1 0 remain[1] = max remain[1] remain 1 max if (remain[0] == 0)
						remain[0] = max; remain[0] == 0 remain[0] remain 0 0 remain[0] = max remain[0] remain 0 max max = triangle_side_int[i] max triangle_side_int[i] triangle_side_int i {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				} if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i]; remain[1] == 0 remain[1] remain 1 0 remain[1] = triangle_side_int[i] remain[1] remain 1 triangle_side_int[i] triangle_side_int i if (remain[0] == 0)
						remain[0] = triangle_side_int[i]; remain[0] == 0 remain[0] remain 0 0 remain[0] = triangle_side_int[i] remain[0] remain 0 triangle_side_int[i] triangle_side_int i if (Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2)) {
				System.out.println("YES");
			} else
				System.out.println("NO"); Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2) Math.pow(remain[0], 2) + Math.pow(remain[1], 2) Math.pow(remain[0], 2) Math.pow Math remain[0] remain 0 2 Math.pow(remain[1], 2) Math.pow Math remain[1] remain 1 2 Math.pow(max, 2) Math.pow Math max 2 {
				System.out.println("YES");
			} System.out.println("YES") System.out.println System.out System System.out "YES" System.out.println("NO") System.out.println System.out System System.out "NO" String argv[] argv public class Main{

	public static void main(String argv[]) throws IOException {
		InputStreamReader is = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(is);
		String str;
		String triangle_side_str[] = new String[3];
		int max = 0;
		int remain[] = new int[2];
		int triangle_side_int[] = new int[3];
		int N = Integer.parseInt(br.readLine());

		for (int j = 0; j < N; j++) {
			str = br.readLine();
			remain[0] = 0;
			remain[1] = 0;
			max = 0;
			triangle_side_str = str.split(" ");

			for (int i = 0; i < 3; i++) {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			}
			// System.out.println(max);
			// System.out.println(remain[0]);
			// System.out.println(remain[1]);
			if (Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2)) {
				System.out.println("YES");
			} else
				System.out.println("NO");

		}

	}

} public class Main{

	public static void main(String argv[]) throws IOException {
		InputStreamReader is = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(is);
		String str;
		String triangle_side_str[] = new String[3];
		int max = 0;
		int remain[] = new int[2];
		int triangle_side_int[] = new int[3];
		int N = Integer.parseInt(br.readLine());

		for (int j = 0; j < N; j++) {
			str = br.readLine();
			remain[0] = 0;
			remain[1] = 0;
			max = 0;
			triangle_side_str = str.split(" ");

			for (int i = 0; i < 3; i++) {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			}
			// System.out.println(max);
			// System.out.println(remain[0]);
			// System.out.println(remain[1]);
			if (Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2)) {
				System.out.println("YES");
			} else
				System.out.println("NO");

		}

	}

} Main


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{

	public static void main(String argv[]) throws IOException {
		InputStreamReader is = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(is);
		String str;
		String triangle_side_str[] = new String[3];
		int max = 0;
		int remain[] = new int[2];
		int triangle_side_int[] = new int[3];
		int N = Integer.parseInt(br.readLine());

		for (int j = 0; j < N; j++) {
			str = br.readLine();
			remain[0] = 0;
			remain[1] = 0;
			max = 0;
			triangle_side_str = str.split(" ");

			for (int i = 0; i < 3; i++) {
				triangle_side_int[i] = Integer.parseInt(triangle_side_str[i]);
				if (max <= triangle_side_int[i]) {
					if (remain[1] == 0)
						remain[1] = max;
					else if (remain[0] == 0)
						remain[0] = max;
					max = triangle_side_int[i];
				} else {
					if (remain[1] == 0)
						remain[1] = triangle_side_int[i];
					else if (remain[0] == 0)
						remain[0] = triangle_side_int[i];
				}

			}
			// System.out.println(max);
			// System.out.println(remain[0]);
			// System.out.println(remain[1]);
			if (Math.pow(remain[0], 2) + Math.pow(remain[1], 2) == Math.pow(max, 2)) {
				System.out.println("YES");
			} else
				System.out.println("NO");

		}

	}

}