#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
    string reorigin;
    cin >> reorigin;
    string origin = reorigin;
    reverse(origin.begin(), origin.end());
    if (origin.compare(reorigin) == 0){
        printf("Yes");
    }
    else{
        int size = origin.size();
        int i;
        for(i = 0; i < size; i++){
            if (origin[i] == '0'){
                continue;
            }
            else{
                break;
            }
        }
        int j;
        for(j = size-1; j >=0; j--){
            if(origin[j] == '0'){
                continue;
            }
            else{
                break;
            }
        }
        string substr = origin.substr(i, j-i + 1);
        string newstr = substr;
        reverse(substr.begin(), substr.end());
        if(newstr.compare(substr) == 0){
            cout <<"Yes";
        }
        else{
            cout << "No";
        }
    }
}
//#define _GLIBCXX_DEBUG
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int INF = 1e9 + 7;
const double PI = 3.14159265358979;
#define ALL(x) x.begin(),x.end()

bool isPal(string s){
    bool ret = true;
    for(int i = 0; i < s.size()/2; i++){
        if(s.at(i) != s.at(s.size()-1-i)){
            ret = false;
        }
    }
    return ret;
}

int main(){
    string n; cin >> n;
    for(int i = 0; i <= n.size(); i++){
        string zero = "";
        for(int j = 0; j < i; j++) zero += "0";
        string target = zero + n;
        if(isPal(target)){
            cout << "Yes" << endl;
            return 0;
        }
    }

    cout << "No" << endl;
}