//Thanks for viewing, hope it helps :)
#include<bits/stdc++.h>
using namespace std;
#define f(i,a,b) for(ll i=(a);i<(b);i++)
#define fr(i,a,b) for(ll i=(a);i>=(b);i--)
#define  pb push_back
#define pob pop_back
#define F first 
#define S second 
#define P(a,n) f(i,0,n) cout<<a[i]<<" ";cout<<"\n"
#define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define test int t; cin>>t; while(t--)
#define all(V) V.begin(),V.end()
typedef  long long int ll;
typedef  unsigned long long int ull;
#define MOD 1000000007
#define MAX LONG_LONG_MAX-1e8
struct custom_hash {
    static uint64_t splitmix64(uint64_t x) {
        // http://xorshift.di.unimi.it/splitmix64.c
        x += 0x9e3779b97f4a7c15;
        x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
        x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
        return x ^ (x >> 31);
    }

    size_t operator()(uint64_t x) const {
        static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count();
        return splitmix64(x + FIXED_RANDOM);
    }
};
//bool is_powerof_2(ll x){
//    return x&&(!(x&(x-1)));
//}
//map<ll,ll> fact(ll n) {
//    map<ll,ll> factorization;ll c=0;
//    while (n % 2 == 0) {
//        c++;
//        n /= 2;
//    }
//    if(c>0)
//    {
//        factorization.insert({2,c});
//    }c=0;
//    for (ll d = 3; d * d <= n; d += 2) {
//        while (n % d == 0) {
//            c++;
//            n /= d;
//        }
//        if(c>0)
//    {
//        factorization.insert({d,c});
//    }c=0;
//    }
//    if (n > 1)
//       {
//           factorization.insert({n,1});
//       }
//    return factorization;
//}
//ll mod_pow( ll x,ll n,ll m){ // =(x*n)mod m
//    ll res=1;
//    x%=m;
//    while(n){
//        if(n&1) res=res*x%m;
//        x=x*x%m;
//        n>>=1;
//    }
//    return res;
//    
//}
//bool cmp(const pair<ll,ll>&a,const pair<ll,ll>&b){
//    if(a.F==b.F) return (a.S<b.S);
//    return (a.F>b.F);
//}
//
//bool Prime[1000000001]; // First make it Global
//void seive(){
//  
//    memset(Prime,true,sizeof(Prime));
//    for(ll i=2;i*i<MAX;i++){
//        if(Prime[i]){
//            
//            for(ll j=i*i;j<MAX;j+=i){
//                Prime[j]=false;
//            }
//        
//        }
//    }
//    Prime[1]=false;
//}
//ll MN[MAX][20];
//ll MX[MAX][20];
//void Sparse_Table_min(vector<ll>A,ll n){
//   
//    f(i,0,n) MN[i][0]=A[i];
//    for(ll j=1;(1<<j)<=n;j++){
//        for(ll i=0;(i+(1<<j)-1)<n;i++){
//            MN[i][j]=min(MN[i][j-1],MN[i+(1<<(j-1))][j-1]);
//        }
//    }
//}
//ll query_min(ll x,ll y){
//    ll j=log2(y-x+1);
//    ll ans=min(MN[x][j],MN[y-(1<<j)+1][j]);
//    return ans;
//}
//void Sparse_Table_max(vector<ll>A,ll n){
//    
//    f(i,0,n) MX[i][0]=A[i];
//    for(ll j=1;(1<<j)<=n;j++){ 
//        for(ll i=0;(i+(1<<j)-1)<n;i++){
//            MX[i][j]=max(MX[i][j-1],MX[i+(1<<(j-1))][j-1]);
//        }
//    }
//}
//ll query_max(ll x,ll y){
//    ll j=log2(y-x+1);
//    ll ans=max(MX[x][j],MX[y-(1<<j)+1][j]);
//    return ans;
//}
//ll s[100005],e[100005];
//class ComparisonClass {
//public:
//    
//    bool operator() (const pair<ll,ll>&a,const pair<ll,ll>&b) {
//      if(a.F<b.F) return 1;
//      else if(a.F>b.F) return 0;
//      else{
//        if(e[a.S]<e[b.S]) return 1;
//        else return 0;
//     }
//    }
//};
//bool cmp(const pair<ll,ll>&a,const pair<ll,ll>&b){
//    if(a.F<b.F) return 1;
//    else if(a.F>b.F) return 0;
//    else{
//        if(e[a.S]<e[b.S]) return 1;
//        else return 0;
//    }
//}
//bool can_go(int i,int j,int n,int m,int k){
//    if(k<0) return 0;
//    if(k==0){
//        if(i==n && j==m) return 1;
//        else return 0;
//    }
//    if(i>n || j>m) return 0;
//    bool a,b;
//    a=can_go(i,j+1,n,m,k-i);
//    b=can_go(i+1,j,n,m,k-j);
//    return (a||b);
//}
//

void solve(){
    ll a,b,c;cin>>a>>b>>c;
    cout<<21-(a+b+c)<<"\n";
}

int main(){  
    fast
// test{
        solve();
 // }
} 
#include <iostream>
#include <bits/stdc++.h>
#include <unordered_set>
#include <unordered_map>
#define ll long long
#define inf 9223372036854775807
#define minf -9223372036854775808
#define mod 1000000007
//#include "stdc++.h"
using namespace std;
ll min(ll a,ll b){
    if(a<b)
    return a;
    return b;
}
ll max(ll a,ll b){
    if(a>b)
    return a;
    return b;
}
ll gcd(ll a,ll b){
    
    if(a==0)
    return b;
    if(b==0)
    return a;
    return gcd(b,a%b);
}
ll power(ll x,ll y){
    x=x%mod;
    if(x==1)
    return 1;
    if(y==0)
    return 1;
    if(y==1)
    return x;
    ll temp=power(x,y>>1);
    if(y&1){
        return ((((temp*temp)%mod)*x)%mod);
    }
    else
    return ((temp*temp)%mod);
}
 
void factorial(ll n,vector<ll> &fact){
    fact[0]=1;
    fact[1]=1;
    for(ll i=2;i<=n;i++)
    fact[i]=(fact[i-1]*(i%mod))%mod;
    return;
}
 
ll inv(ll n){
    return power(n,mod-2);
}
 
ll ncr(ll n,ll r,vector<ll> &fact){
    if(r>n)
    return 0;
    return ((((fact[n]*inv(fact[n-r]))%mod)*inv(fact[r]))%mod);
}
 
void find_primes(ll n,vector<ll> &primes){
    bool isprime[n+1];
    for(ll i=0;i<=n;i++)
    isprime[i]=1;
    isprime[0]=0;
    isprime[1]=0;
    for(ll i=2;i<=n;i++){
        if(isprime[i]){
            for(ll j=i*i;j<=n;j+=i){
                isprime[j]=0;
            }
        }
    }
    for(ll i=0;i<=n;i++){
        if(isprime[i]){
            primes.push_back(i);
        }
    }
    return;
}
 
void find_fact1(ll n,vector<ll> &primes,vector<unordered_map<ll,ll> > &primfact){
    vector<ll> cur(n+1);
    for(ll i=0;i<=n;i++){
        cur[i]=i;
    }
    for(auto x:primes){
        for(ll i=x;i<=n;i+=x){
            ll cnt=0;
            while(cur[i]%x==0){
                cur[i]/=x;
                cnt++;
            }
            primfact[i][x]=cnt;
        }
    }
    return;
}
void find_fact2(ll n,vector<ll> &primes,vector<ll> &sp){
    for(ll i=0;i<=n;i++){
        sp[i]=i;
    }
    for(auto x:primes){
        for(ll i=x*2;i<=n;i+=x){
            sp[i]=min(sp[i],x);
        }
    }
    return;
}

void bfs(ll u,vector<vector<ll> >&adj,vector<ll> &dist){
    ll n=adj.size()-1;
    vector<bool> vis(n+1,0);
    vis[u]=1;
    dist[u]=0;
    queue<ll> q;
    q.push(u);
    ll level=1;
    while(!q.empty()){
        ll k=q.size();
        for(ll i=0;i<k;i++){
            ll x=q.front();
            q.pop();
            for(auto y:adj[x]){
                if(!vis[y]){
                    vis[y]=1;
                    dist[y]=level;
                    q.push(y);
                }
            }
        }
        level++;
    }
    return;
}

void solve(){
ll a,b,c;
  cin>>a>>b>>c;
  ll sum=a+b+c;
  ll ans=21-sum;
  cout<<ans<<endl;
}
 
 
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
 
    /*ll n1=300000;
    vector<ll> fact(n1+1);
    factorial(n1,fact);*/
    
    
    /*vector<ll> primes;
    ll n2=10000;
    find_primes(n2,primes);*/
 
    /*ll n3=100000;
    vector<unordered_map<ll,ll> >primfact(n3+1);
    find_fact1(n3,primes,primfact);*/
 
    
    /*ll n3=100000;
    vector<ll>sp(n3+1);
    find_fact2(n3,primes,sp);*/
    
    
 
    ll t;
    //cin>>t;
  t=1;
    while(t--) solve();
} 
 
 


