Go: package main

import (
	"fmt"
	"bufio"
	"os"
	"strconv"
	"strings"
)

var sc = bufio.NewScanner(os.Stdin)

func nextLine() string {
	sc.Scan()
	return sc.Text()
}

func nextLineInt() []int {
	arr := strings.Split(nextLine(), " ")
	var ret []int
	for _, v := range arr {
		x, _ := strconv.Atoi(v)
		ret = append(ret, x)
	}
	return ret
}

func main() {
	cin := nextLineInt()
	F := cin[0]
	fmt.Println((F-30)/2)
}

C++: #include <bits/stdc++.h>
using namespace std;
typedef long long ll;

#define EPS (1e-7)
#define INF (1e9)
#define PI (acos(-1))
#define MAXN 100001

int main() {
    int F;
    cin >> F;
    cout << (F-30)/2 << endl;
}

C++: #include <iostream>
using namespace std;
int main(void){
    int F,c;
    cin >> F;
    c=(F-30)/2;
    cout << c << endl;
    
    
}

C++: #include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
using namespace std;

int main(){
	int f;cin>>f;
	cout<<(f-30)/2<<endl;
}

C++: #include<iostream>
using namespace std;
int main(){
  int f;
  cin>>f;
  cout<<(f-30)/2<<endl;
  return(0);
}

C++: #include <iostream>
using namespace std;
int main(void){
    int a,b;
    cin>>a;
    b=(a-30)/2;
    cout<<b<<endl;
}

C++: #include<bits/stdc++.h>
#include<vector>
#include<deque>
#include<list>
#define rep(i,n) for(ll i=0;i<n;++i)
#define rrep(i,n) for(int i=n-1;i>=0;--i)
#define yesno(flg) if(flg){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}
#define MAX_N 1002
#define i197 1000000007

using namespace std;

typedef long long ll;
typedef pair<ll,ll> P1;
typedef pair<int,int> Pi;
typedef pair<double,Pi> Pdi;
typedef pair<ll,int>Pli;
typedef pair<P1,ll> P2;
const ll INF=100000000000000001;
struct edge{int to,cost;};
struct pos{
	int x,y,cost;
	double ma=0;
};
int dy[]={0, 0, 1, -1};
int dx[]={1, -1, 0, 0};
struct Road{double cost;int a,b;};

int main() {

	int f;
	cin>>f;
	cout<<(f-30)/2<<endl;

	return 0;
}

C++: #include<iostream>

using namespace std;

int main(){
  int f;
  cin>>f;
  cout<<(f-30)/2<<endl;
}

C++: #include <iostream>

using namespace std;

int main() {
    int F;
    cin >> F;
    cout << (F-30)/2 << endl;
    return 0;
}

C++: #include<iostream>
using namespace std;
 
 
int F,C;
 
int main(){
cin>>F;
C = (F-30)/2;
cout<< C <<endl;
 
return 0;
}

C++: #include "bits/stdc++.h"
#define rep(i,a,n) for(int i = (a);i < (n);i++)
typedef unsigned long long ull;
typedef long long ll;
using namespace std;

int main(){
    
    int n ;
    cin >> n;
    cout << (n-30)/2 << endl;
    
    return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
#define rep(i,N) for(int (i)=0;(i) < (N); (i)++)
#define all(V) V.begin(), V.end()
using i64 = int_fast64_t;
using P = pair<i64,i64>;

int main(){
    int F;
    cin >> F;
    cout << (F - 30) / 2 << endl;
}

C++: #include<iostream>
#include<iomanip>
#include<string>
#include<set>
#include<vector>
#include<utility>
#include<queue>
#include<algorithm>
#include<functional>
using namespace std;
#define LL long long
#define MOD 100000
#define inf 1999999999

int f;

int main() {
	cin >> f;
	cout << (f - 30) / 2 << endl;
	

	return 0;
}