#include <iostream>
#include <algorithm>

using namespace std;

string s;

int main(void) {
    cin >> s;

    bool flag = true;

    for (int i = 0; i < s.size(); ++i) {
        int j = s.size() - i - 1;
        if (s[i] != s[j]) flag = false;
    }

    if (flag) {
        cout << "Yes" << endl;
        return 0;
    }

    int zero = 0;
    for (int i = s.size() - 1; i >= 0; --i)
        if (s[i] == '0') zero ++;
    
    reverse(s.begin(), s.end());
    while (zero--) s += '0';

    for (int i = 0; i < s.size(); ++i)
        if (s[i] != s[s.size() - i - 1]) {
            cout << "No" << endl;
            return 0;
        }
    cout << "Yes" << endl;
    return 0;
}
#include <bits/stdc++.h>
using namespace std;

bool check(string s){
    int size = s.size();
    bool flag = true;
    for(int i=0;i < size/2;i++){
        if(s.at(i) == s.at(size -i -1)) continue;
        else flag = false;
    }
    return flag;
}


int main(){
    int N;
    cin >> N;
    string s = to_string(N);
    for(int i=0;i<10;i++){
        if(check(s)){
            cout << "Yes" << endl;
            break;
        }
        s = '0' + s;
    }
    if(!check(s)){
        cout << "No" << endl;
    }

}