
#include <bits/stdc++.h>

#define ll long long
#define PB push_back
#define MP make_pair
#define F first
#define S second

#define REP(i, n) for(int i=0;i<(int)(n);++i)
#define FOR(i,l,h) for(int i=(int)(l);i<=(int)(h);++i)
#define FORD(i,h,l) for(int i=(int)(h);i>=(int)(l);--i)

//#define max(a,b) a>b?a:b
//#define min(a,b) a>b?b:a

ll gcd(ll a, ll b) { return !b ? a : gcd(b, a % b); }
ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; }

#define dump(x)  cerr << #x << " = " << (x) << endl
#define ALL(t) (t).begin(),(t).end()
#define ALLR(t) (t).rbegin(),(t).rend()



using namespace std;

#define error(args...) { string _s = #args; replace(_s.begin(), _s.end(), ',', ' '); stringstream _ss(_s); istream_iterator<string> _it(_ss); err(_it, args); }

void err(istream_iterator<string> it) {}
template<typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
	cerr << *it << " = " << a << endl;
	err(++it, args...);
}

int sum() { return 0; }

template<typename T, typename... Args>
T sum(T a, Args... args) { return a + sum(args...); }

const int dx4[4] = {0, 0, 1, -1};
const int dy4[4] = {-1, 1, 0, 0};
const int dx8[8] = {-1, -1, -1, 0, 1, 1, 1, 0};
const int dy8[8] = {-1, 0, 1, 1, 1, 0, -1, -1};

#define MOD 1000000007
///////////////////////////////////////

//////////////////////////////////////////

void test_case(){

    string s;cin>>s;
    string s1 = s;
    int n = s.length();
    reverse(ALL(s));
    if(s == s1){
        cout<<"Yes\n";
    }
    else{
        int l = 0,r= n-1;
        for (int i = 0; i < n; ++i)
        {
            if(s[i] == '0')l++;
            else break;
        }
        for (int i = n-1; i >= 0;--i)
        {
            if(s[i] == '0')r--;
            else break;
        }
        int n1 = (r+l)/2;
        while(l <= n1)
        {
            if(s[l] != s[r]){
                cout<<"No\n";
                return ;
            }
            else{
                l++;
                r--;
            }
        }
        cout<<"Yes\n";
    }

}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
	cout.tie(NULL);
	//init();
	int t =  1;//cin>>t;
	while (t--)
	{
		test_case();
	}
	return 0;
}

#include <bits/stdc++.h>
#include <unordered_set>
using namespace std;

int main(){
  int j=0,n,a[10];
  bool zeroend=false;
  cin>>n;
  for(int i=0;n>0;i++){
    if(n%10!=0){
      zeroend=true;
    }
    if(zeroend){
      a[j]=n%10;
      j++;
    }
    n/=10;
  }
  
  for(int i=0;i<j/2;i++){
    if(a[i]!=a[j-1-i]){
      cout<<"No"<<endl;
      return 0;
    }
  } 
  cout<<"Yes"<<endl;
}