#include using namespace std; using ll = long long; void solve() { ll n, a, b; cin >> n >> a >> b; if (a * b != n) { cout << "NO" << '\n'; return; } auto get_digits = [&](int n) { int digits = 0; while (true) { int cut = n / 10; if (cut == n) { break; } else { digits ++; } n = cut; } return digits; }; int dig_a = get_digits(a); int dig_b = get_digits(b); int dig_n = get_digits(n); if (!(dig_a == dig_b && dig_a + dig_b == dig_n)) { cout << "NO" <<'\n'; return; } if (a % 10 == 0 && b % 10 == 0) { cout << "NO" << '\n'; return; } auto map_digits = [&](int a, int b) { multiset digits; while (true) { if (a / 10 == a) break; int last_a = a % 10; int last_b = b % 10; digits.insert(last_a); digits.insert(last_b); a /= 10; b /= 10; } return digits; }; multiset map_ab = map_digits(a, b); // check all digits of n bool passed = true; while (true) { if (n / 10 == n) break; int last_digit = n % 10; auto it = map_ab.find(last_digit); if (it == map_ab.end()) { passed = false; break; } map_ab.erase(it); n /= 10; } if (passed) { cout << "YES" << '\n'; } else { cout << "NO" << '\n'; } } int main() { int T; cin >> T; for (int t = 0; t < T; ++t) { solve(); } return 0; }