Go: package main

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

var sc = bufio.NewScanner(os.Stdin)

func main() {
	sc.Scan()
	F, _ := strconv.Atoi(sc.Text())
	fmt.Println((F - 30) /2)
}

C++: #include <bits/stdc++.h>
typedef long long ll;
typedef long double ld;
const int INF=1e9,MOD=1e9+7,ohara=1e6+10;
const ll LINF=1e18;
using namespace std;
    
#define rep(i,n) for(int (i)=0;(i)<(int)(n);(i)++)
#define rrep(i,a,b) for(int i=(a);i<(b);i++)
#define rrrep(i,a,b) for(int i=(a);i>=(b);i--)
#define all(v) (v).begin(), (v).end()
#define Size(n) (n).size()
#define Cout(x) cout<<(x)<<endl
#define doublecout(a) cout<<fixed<<setprecision(15)<<a<<endl;
#define Cerr(x) cerr<<(x)<<endl
#define fi first
#define se second
#define P pair<ll,ll> 
#define m_p make_pair
#define V vector<ll> 
#define U_MAP unordered_map<ll,ll>
#define pq priority_queue<ll>
#define rpq priority_queue<ll,vector<ll>,greater<ll>>
#define p_b push_back
    
ll n,cnt,ans,a,b,c,d,tmp,tmpp,m,h,w,x,y,sum,pos,k;
ld doua;
int dy[]={1,0,-1,0};
int dx[]={0,1,0,-1};
//int dy[]={-1,0,1,-1,1,-1,0,1};
//int dx[]={-1,-1,-1,0,0,1,1,1};
string alph("abcdefghijklmnopqrstuvwxyz"),s;
bool fl;
struct edge{int to,cost;};
    
//-------------------------↓↓↓↓↓↓------------------------
    
//------ 自分を天才だと信じる ------
    
int main(void){
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(false);
    
    cin>>a;
    Cout((a-30)/2);
    return 0;
}

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

int main() {
  cin.tie(0); ios::sync_with_stdio(false);

  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)>>1;
  cout << c << endl;
  return 0;
}

C++: #include "iostream"
#include "string"
#include "algorithm"
using namespace std;

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

C++: #include <stdio.h>

int main(void){
    int a;
    
    scanf("%d", &a);
    
    printf("%d\n", (a - 30) / 2);
    
    return 0;
}

C++: #include <iostream>

int main() {
  int f;

  std::cin >> f;

  std::cout << (f - 30) / 2 << std::endl;

  return 0;
}

C++: #include<bits/stdc++.h>
using ll  = long long;
#define int ll
#define rep(i,n) for(int i=0;i<n;i++)
#define loop(i,s,n) for(int i=s;i<n;i++)
#define erep(e,v) for(auto && e :v)
#define all(in) in.begin(), in.end()
#define MP make_pair
#define INF (sizeof(int) == 4 ? (int)1e9:(int)1e18)
#define EPS 0.0000000001
using namespace std;
template<class T, class S> void cmin(T &a, const S &b) { if (a > b)a = b; }
template<class T, class S> void cmax(T &a, const S &b) { if (a < b)a = b; }
template<typename Head, typename Value> auto vectors(const Head &head, const Value &v) { return vector<Value>(head, v); }
template<typename Head, typename... Tail> auto vectors(Head x, Tail... tail) { auto inner = vectors(tail...); return vector<decltype(inner)>(x, inner); }
template<class T> void join(T a){for(auto itr :a){if(itr != *a.begin())cout << " "; cout << itr;} }
using ld  = long double;
using pii = pair<int,int>;
using piii = pair<int,pii>;
int W,H;
int dx[]={0,0,1,-1}, dy[]={1,-1,0,0};
bool valid(int x,int y){return (0<=x&&x<W)&&(0<=y&&y<H);}
signed main(){
    int n; cin >> n;
    cout << (n-30)/2 <<endl;
}

C++: #include <stdio.h>

int main(void) {
  int f;
  scanf("%d", &f);
  printf("%d\n", (f - 30) / 2);
  return 0;
}

C++: #include<cstdio>
#include<algorithm>
#include<functional>
using namespace std;
int main(void)
{
	int c,f;
	scanf("%d",&f);
	c=(f-30)/2;
	printf("%d\n",c);
	return 0;
}

C++: #include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
#include<set>
#include<string>
#include<map>
#include<cassert>
using namespace std;
#define int long long
#define rep(i,n) for(int i=0;i<n;i++)
typedef pair<int, int> P;
typedef pair<int, P> PP;

signed main() {
	int f; cin >> f;
	cout << (f - 30) / 2 << 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>
using namespace std;

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

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

C++: #include <bits/stdc++.h>
#define rep0(i,n) for (int i = 0; i < (n); ++i)  //0index
#define rep1(i,n) for (int i = 1; i < (n); ++i)  //1index
#define REP(i,a,b) for (int i = a; i < (b); ++i)  //aからb - 1まで
#define mREP(i,a,b) for (int i = a; i > (b); --i)  //逆
#define all(x) (x).begin(),(x).end()
const int INF = 1000000007;  //最大値兼MOD
typedef long long ll;
using namespace std;
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
ll gcd(ll a, ll b) { return b ? gcd(b, a%b) : a; }
int main(){
  int n;
  cin >> n;
  cout << (n - 30) / 2 << endl;
  return 0;
}

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

#pragma warning(disable:4996)
using namespace std;
using ld = long double;



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 <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i, n) for(int i = 0; i < n; i++)
#define all(a) a.begin(), a.end()
#define mod 1000000007
#define MOD 998244353
#define INF 40000000000000000
int dx8[8] = {-1, 0, 1, 1, 1, 0, -1, -1};
int dy8[8] = {1, 1, 1, 0, -1, -1, -1, 0};
int dx4[4] = {-1, 0, 1, 0};
int dy4[4] = {0, -1, 0, 1};
template <class T>
inline bool chmax(T &a, T b) {
    if(a < b) {
        a = b;
        return 1;
    }
    return 0;
}
template <class T>
inline bool chmin(T &a, T b) {
    if(a > b) {
        a = b;
        return 1;
    }
    return 0;
}
signed main() {
    int F;cin>>F;
    cout<<(F-30)/2<<endl;
}

C++: #include <stdio.h>
#include <iostream>
#include <string>

using namespace std;

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

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

C++: #include <bits/stdc++.h>
using ll = long long;
using namespace std;
#define _overload3(_1, _2, _3, name, ...) name
#define _rep(i, n) repi(i, 0, n)
#define repi(i, a, b) for(int i = int(a); i < int(b); ++i)
#define rep(...) _overload3(__VA_ARGS__, repi, _rep, )(__VA_ARGS__)
const long long INFLL = 1LL << 60;
const int INFINT = 1 << 30;
const long long MOD = 1e9 + 7;

template <class T> void vecout(T V) {
    auto t = V.begin();
    while(t != V.end()) {
        cout << *t++;
        if(t != V.end()) cout << " ";
    }
    cout << endl;
};

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

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

#define rep(i, n) for(int i = 0; i < n; ++i)

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

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

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

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;
int main(){
    int f;
    cin>>f;
    cout<<(f-30)/2<<endl;
}

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


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