//
//  main.cpp
//  A
//
//  Created by E SAMEER KUMAR on 09/04/20.
//  Copyright © 2020 E SAMEER KUMAR. All rights reserved.

#include <bits/stdc++.h>
using ll = long long;
using namespace std;
//map<int,vector<int>> tree;
//map<int,vector<int>> rooted;
//map<int,int> primes;
void debugi(vector<int> & vec){
    int n=(int)vec.size();
    for(int i=0;i<n;i++){
        cout<<vec[i]<<" ";
    }
    cout<<endl;
}
void debugl(vector<ll> & vec){
    int n=(int)vec.size();
    for(int i=0;i<n;i++){
        cout<<vec[i]<<" ";
    }
    cout<<endl;
}
void debugmap(map<int,int> & mp){
    for(auto x:mp){
        cout<<x.first<<" "<<x.second<<" , ";
    }
    cout<<endl;
}
void debugset(set<int> & st){
    for(auto x: st){
        cout<<x<<" ";
    }
    cout<<endl;
}
void debugparri(vector<pair<int, int>>& arr){
    for(int i=0;i<(int)arr.size();i++){
        cout<<"["<<arr[i].first<<" : "<<arr[i].second<<"]"<<" ";
    }
    cout<<endl;
}
void debugpi(pair<int, int> &pi){
    cout<<pi.first<<" "<<pi.second<<endl;
}
void debugq(queue<int> q){
    while(!q.empty()){
        cout<<q.front()<<" ";
        q.pop();
    }
    cout<<endl;
}

bool check(int n,int i,int j){
    if((0<=i & i<n) && (0<=j & j<n)){
        return true;
    }
    return false;
}
// ll MOD = 1e9+7;
ll mod = 998244353;
ll powab(ll a,ll b,ll mod){
    if(b==0){
        return 1;
    }
    ll z=powab(a, b/2, mod);
    ll res=(z*z*1LL)%mod;
    if(b&1){
        res=(res*1LL*a)%mod;
    }
    return res;
}
// char s[100006];
// int m=200005;
// int p;
//int mod(int x,int mod){
//    if(x<0){
//        return mod-(x%mod);
//    }
//    else{
//        return x%mod;
//    }
//}
//ll modinv(ll a){
//    ll ans=powab(a, mod-2, mod);
//    return ans;
//}

int lim=10;
int n;
vector<vector<pair<int,ll>>>g(lim);
vector<int> vis(lim);
vector<ll> dp(lim),a(lim);
int dia=0,node=0;
int ind = 0;
ll gcd(ll a, ll b){
    if(b==0){
        return a;
    }
    return gcd(b,a%b);
}
void upd(int k, int x,vector<int>& tree,int n){
//    cout<<k<<" k "<<endl;
    if(k==0){
        return;
    }
//    cout<<k<<" k "<<endl;
    while(k<=n){
//        cout<<k<<" kk "<<endl;
        tree[k]+=x;
        k+=(k&-k);
    }
}
int sum(int k,vector<int>& tree,int n){
    int s=0;
    while(k>=1){
        s+=tree[k];
        k-=(k&-k);
    }
    return s;
}
int x,k;
ll get_low(int i,vector<int>& arr){
    int low=0,high=arr.size()-1;
    ll ans=-1;
    while(low<=high){
        int mid=(low+high)/2;
        if(arr[mid]<arr[i]){
            low=mid+1;
            continue;
        }
        int fr=arr[mid]/x;
        int fl=arr[i]/x;
        int bet=fr-fl;
        if(arr[i]%x==0){
            bet+=1;
        }
        if(bet<k){
            low=mid+1;
        }
        else if(bet==k){
            ans=mid;
            high=mid-1;
        }
        else{
            high=mid-1;
        }
    }
    return ans;
}
ll get_high(int i,vector<int>& arr){
    int low=0,high=arr.size()-1;
    ll ans=-1;
    while(low<=high){
        int mid=(low+high)/2;
        if(arr[mid]<arr[i]){
            low=mid+1;
            continue;
        }
        int fr=arr[mid]/x;
        int fl=arr[i]/x;
        int bet=fr-fl;
        if(arr[i]%x==0){
            bet+=1;
        }
        if(bet<k){
            low=mid+1;
        }
        else if(bet==k){
            ans=mid;
            low=mid+1;
        }
        else{
            high=mid-1;
        }
    }
    return ans;
}
void solve(){
    string s;
    cin>>s;
    int n=s.size();
    if(s[n-1]=='s'){
        s+="es";
    }
    else{
        s+='s';
    }
    cout<<s<<endl;
}
int main(int argc, const char * argv[]) {
    // insert code here...
    // ofstream file;
    ios_base::sync_with_stdio(false); 
    cin.tie(NULL);
    int t;
    // cin >> t;
    t = 1;
    for(int tt=0;tt<t;tt++){
        solve();
    }
    return 0;
}

Measured memory_bytes: 3648