#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;
using ll = long long;
using ld = long double;

#define all(x)  x.begin(),x.end()
#define v(x) vector<x>
#define nl '\n'
#define fxd(x) fixed << setprecision(x)
template<class t> using ordered_set = tree<t, null_type, less<t>, rb_tree_tag, tree_order_statistics_node_update>;
template<class t> using ordered_multiset = tree<t, null_type, less_equal<t>, rb_tree_tag, tree_order_statistics_node_update>;


int main()
{
    ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
    int a , b ,c; cin >> a >> b;
    c = a+b;
    string x = to_string(a);
    string y = to_string(b);
    string z = to_string(c);
    for (int i = 0; i < x.length(); i++)
    {
        if(x[i] == '0') 
        {
            x.erase(x.begin()+i);
            i--;
        }
    }
    for (int i = 0; i < y.length(); i++)
    {
        if(y[i] == '0') 
        {
            y.erase(y.begin()+i);
            i--;
        }
    }
    for (int i = 0; i < z.length(); i++)
    {
        if(z[i] == '0') 
        {
            z.erase(z.begin()+i);
            i--;
        }
    }
    
    a = stoi(x);
    b = stoi(y);
    c = stoi(z);
    if(a+b == c)
    {
        cout << "YES";
    }
    else
    {
        cout << "NO";
    }
}