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<iostream>
using namespace std;

int F,C;			//変数の用意

int main(){
cin>>F;		 	//変数の読み込み
C = ( F -30 ) / 2;		//華氏温度（F）を摂氏温度（C）に変換
cout<< C << endl; 	//摂氏温度（C）を出力

return 0;
}

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

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

	return 0;
}

C++: #include <bits/stdc++.h>

using namespace std;

#define REP(i,m) for(ll i=0; i<m; i++)
#define FOR(i,n,m) for(ll i=n; i<m; i++)
#define INF 1000000007
#define INFL (1LL << 60)
#define MOD 998244353
#define ALL(v) v.begin(),v.end()
#define pb push_back
#define ll long long int
#define P pair<ll, ll>

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

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

int main(){
    int f;
    cin>>f;
    int c;

    c= (f-30)/2;

    cout<<c<<endl;

    return 0;
}

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

C++: #include <cstdio>

using namespace std;

int main()
{
    double c,f;
    scanf( "%lf", &f );
    printf( "%.0lf\n", ( f - 30 ) / 2 );
    return 0;
}

C++: #include "bits/stdc++.h"

using namespace std;
using uint = unsigned int;
using int64 = long long;
using i64 = int64;
using uint64 = unsigned long long;
using vint = vector<int>;
using vint64 = vector<int64>;
template<typename T>
using p_que = priority_queue<T>;
#define rep(i,N) for(int i=0;i<(int)(N);++i)
#define rep1(i,N) for(int i=1;i<=(int)(N);++i)
#define fs first
#define sc second
#define eb emplace_back
#define all(x) x.begin(),x.end()

template<typename T>
vector<T> make_v(size_t a, T b) { return vector<T>(a, b); }
template<typename... Ts>
auto make_v(size_t a, Ts... ts) {
	return vector<decltype(make_v(ts...))>(a, make_v(ts...));
}

template<class T> ostream& operator<<(ostream& os, const vector<T>& v) {
	os << "[";
	for (auto& e : v) os << e << ", ";
	return os << "]";
}

template<class T, class U> ostream& operator<<(ostream& os, const pair<T, U> p) {
	return os << "P(" << p.first << ", " << p.second << ")";
}

template<class T, class U> ostream& operator<<(ostream& os, const map<T, U>& mp) {
	os << "{";
	for (auto& e : mp) os << e << " ";
	return os << "}";
}

void Main();
signed main() {
	cin.tie(nullptr);
	ios::sync_with_stdio(false);
	cout << fixed << setprecision(20);
	Main();
}

/* Cut from here! */

//#define int long long

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

C++: #include <bits/stdc++.h>

using namespace std;
#define TOSTRING(x) #x
#define SZ(x) (int)(x).size()
#define REP(i,n) for(int i=0;i<(n);i++)
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define ALL(s) (s).begin(), (s).end()
#define dis distance
#define so(V) sort(ALL(V))
#define rev(V) reverse(ALL(V))
#define uni(v) v.erase( unique(ALL(v)) , v.end());

typedef long long unsigned int llu;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<bool> vb;
typedef vector<vector <int> > vvi;
typedef vector<vb> vvb;
const double EPS = 1e-9;
const int MOD = 1e9+7;
const int INF = (1 << 29);
const ll LINF = 1e18;
const double PI = acos(-1);


typedef pair<int,bool> P;

int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    int F;
    cin >> F;
    cout << (F - 30) / 2<< endl;
    return 0;
}

C++: #include <iostream>
#include <fstream>
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <string>
#include <tuple>
#include <vector>
#include <map>
#include <list>
#include <set>
#include <stack>
#include <queue>
#include <cstdlib>
#include <algorithm>
#include <random>
#include <cassert>
using namespace std;
#define LL long long
#undef INT_MIN
#undef INT_MAX
#define INT_MIN -2147483648
#define INT_MAX 2147483647
#define LL_MIN -9223372036854775808
#define LL_MAX 9223372036854775807
#define segment_size 65536
#define ROOP() while (true)

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;
  return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<ll> vll;
typedef vector<vll> vvll;
typedef vector<vvll> vvvll;
typedef vector<string> vstr;
typedef pair<ll, ll> pll;
typedef vector<pll> vp;
typedef map<ll, ll> mll;
typedef map<string, ll> mstrll;
#define pb push_back
#define eb emplace_back
#define mp make_pair
#define fir first
#define sec second
#define maxs(x, y) (x = max(x, y))
#define mins(x, y) (x = min(x, y))
#define all(x) begin(x), end(x)
#define rall(x) rbegin(x), rend(x)
#define _overload3(_1, _2, _3, name, ...) name
#define _rep(i, n) repi(i, 0, n)
#define repi(i, a, b) for(ll i = ll(a); i < ll(b); i++)
#define rep(...) _overload3(__VA_ARGS__, repi, _rep,)(__VA_ARGS__)
#define each(i, n) for(auto&& i: n)
#define out(x) cout << (x)
#define indent() cout << '\n'
#define print(x) cout << (x) << '\n'
#define debug(x) cerr << #x << ": " << (x) << '\n'
ll gcd(ll a, ll b){return b != 0 ? gcd(b, a % b) : a;}
ll lcm(ll a, ll b){return a / gcd(a, b) * b;}
const ll INF = 1e16;
const ll MOD = 1e9 + 7;
ll a, b, c, n, m, x, y, z, w, h, ans, cnt, mx, mn;
string s, t;
ll dx[] = {-1, 0, 1, 0}, dy[] = {0, -1, 0, 1};
//vll dx = {-1, 0, 1, -1, 1, -1, 0, 1}, dy = {-1, -1, -1, 0, 0, 1, 1, 1};
string alphabet = "abcdefghijklmnopqrstuvwxyz";

signed main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    while(cin >> n){
        print((n - 30)/ 2);
    }
}

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

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>
typedef long long int ll;
typedef unsigned long long int ull;
#define BIG_NUM 2000000000
#define HUGE_NUM 99999999999999999
#define MOD 1000000007
#define EPS 0.000000001
using namespace std;



int main(){

	int F;
	scanf("%d",&F);

	printf("%d\n",(F-30)/2);

	return 0;
}

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 F, C;
	 
	cin >> F;

	C = (F - 30)/2;

	cout << C << endl;
    
    return 0;
}

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

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

C++: #include<bits/stdc++.h>
using namespace std;
using Int = long long;
//INSERT ABOVE HERE
signed main(){
  Int x;
  cin>>x;
  cout<<(x-30)/2<<endl;
  return 0;
}

C++: #include <iostream>
using namespace std;
int main(void){
    
    //変数：華氏で表された温度「 F 」と置く
    int F;
   
    //入力：華氏で表された温度「 F 」を入力
    cin >> F;
    
    //出力：摂氏を求める
    cout << (F - 30)/2 << endl;
    
    return 0;
}

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

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

int main(){
  int n;
  cin >> n;

  cout << (n - 30) / 2 << endl;
}