Go: package main

import "fmt"

func main() {
	var v float64
	for {
		i, _ := fmt.Scan(&v)
		if i == 0 {
			break
		}
		t := v / 9.8
		y := 4.9 * t * t

		N := 0
		for {
			N++
			if height := 5*N - 5; float64(height) > y {
				fmt.Println(N)
				break
			}
		}
	}
}

C++: // clang-format off
#include <bits/stdc++.h>
#define int long long
#define main signed main()
// #define main int main()
#define loop(i, a, n) for (int i = (a); i < (n); i++)
#define rep(i, n) loop(i, 0, n)
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
#define prec(n) fixed << setprecision(n)
#define stlice(from, to) substr(from, (to) - (from) + 1)
#define pb push_back
#define mp make_pair
#define mt make_tuple
#define fi first
#define se second
using namespace std;
using pii = pair<int, int>;
using vi = vector<int>;
using vd = vector<double>;
using vc = vector<char>;
using vb = vector<bool>;
using vs = vector<string>;
using vpii = vector<pii>;
using vvi = vector<vi>;
using vvb = vector<vb>;
using vvpii = vector<vpii>;
template<typename A> using fn = function<A>;
constexpr int INF = sizeof(int) == sizeof(long long) ? 1000000000000000000LL : 1000000000;
constexpr int MOD = 1000000007;
constexpr double PI = acos(-1);
template<typename A, typename B> bool cmin(A &a, const B &b) { return a > b ? (a = b, true) : false; }
template<typename A, typename B> bool cmax(A &a, const B &b) { return a < b ? (a = b, true) : false; }
constexpr bool odd(const int &n) { return n & 1; }
constexpr bool even(const int &n) { return !odd(n); }
template<typename V> constexpr typename V::value_type sum(const V &v) { return accumulate(all(v), 0); }
void solve();
main { solve(); return 0; }
// clang-format on

void solve() {
	double v;
	while(cin >> v) {
		double t = v / 9.8;
		double y = 4.9 * t * t;
		cout << ((int)ceil(y)+9) / 5 << endl;
	}
}

C++: #include <stdio.h>

int main(){
	double a;
	double N;
	
	while(scanf("%lf",&a) != EOF){
		N = 1+a*a/98;
		if(N - (int)N > 0){
			N = (int)N+1;
		}
		printf("%d\n",(int)N);
	}
	
	return 0;
}

C++: #include<iostream>
#include<cmath>
#define V(time) (9.8*time)
#define YT(height) (sqrt(height/4.9)) 
using namespace std;
int main(){
  double broken;
  while(cin>>broken){
    double hv[1000]={};
    for(int i=1;i<1000;i++)
      hv[i]=V(YT((i-1)*5));
    for(int i=1;i<1000;i++){
      if(hv[i]>=broken){
	cout<<i<<endl;
	break;
      }
    }
  }
  return 0;
}

C++: #include <iostream>
#define	GA	9.8

int main() {
	double v;
	double y;
	int n;
	while (std::cin >> v) {
		y = v * v / (2. * GA);
		n = (int)((y + 5.) / 5.) + 1;
		std::cout << n << '\n';
	}
	return 0;
}

C++: #include<iostream>
#include<cmath>
int main()
{
	for (double v_min; std::cin >> v_min;)
	{
		double y_min = v_min * v_min / 19.6;
		int y_ceil = static_cast<int>(ceil(y_min));
		int y = y_ceil + (5 - y_ceil % 5) % 5;
		std::cout << (y + 5) / 5 << std::endl;
	}
	return 0;
}

C++: #include <iostream>
using namespace std;

int main(void)
{
    double v, t, y, N;
    
    cin >> v;
    t = v / 9.8;
    y = 4.9 * t * t;
    N = (y+5)/5;
    cout << (int)++N << endl;
    
    return 0;
}

C++: /*****include*****/
#include <iostream>
#include <fstream>
#include <string>

/*****デバッグ定義*****/
//#define DEBUG
/*****マクロ定義*****/

/*****名前空間*****/
using namespace std;

/*****グローバル変数置き場*****/

/*****その他関数置き場*****/

/*****main関数*****/
int main(){
	/*****ファイルオープン*****/
#ifdef DEBUG
	ofstream fout("output.txt");
	ifstream fin("input.txt");
	if(!fout || !fin){
		cout << "Can't open the file.\n";
		return;
	}
#endif
	/*****変数置き場*****/
	double b_v;
	double v_sq;
	int n;
	/*****処理部*****/
	while(1){
		cin >> b_v;
		if(b_v == 0)	break;
		n=0;
		v_sq = 0;
		while(v_sq < b_v*b_v){
			n++;
			v_sq = 19.6 * (5*(double)n - 5);
		}
		cout << n << endl;
	}
	/*****処理終了後*****/
#ifdef DEBUG
	fout.close();
	fin.close();
#endif
	return 0;
}

C++: #include <iostream>
#include <cmath>
using namespace std;

int main()
{
	double v;
	while(cin >> v)
	{
		cout << ceil(v*v/98.0)+1 << endl;
	}

}

C++: #include <iostream>
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <cstdio>
#include <functional>
#include <set>
#include <sstream>
#include <map>

using namespace std;

const double eps=1e-10;

int main()
{
	double v;
	while(cin>>v){
		unsigned long long l=1,r=1e16,h;

		for(int i=0;i<1000;i++){

//			cout<<l<<" "<<r<<endl;

			h=(l+r)/2;
			double vv=(5*h-5)/4.9*9.8*9.8;

			if(v*v>vv) l=h;
			else if(v*v<vv) r=h;
		}

		if( abs(v*v-(5*l-5)/4.9*9.8*9.8)<eps ) cout<<l<<endl;
		else cout<<r<<endl;

	}

	return 0;
}

C++: #include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include<vector>
#include<math.h>
#include<queue>
#include <algorithm>
#include<functional>
#include<cstdlib>
#include<cmath>


#define REP(i, n) for(int i = 0;i < n;i++)
#define REPR(i, n) for(int i = n;i >= 0;i--)
#define FOR(i, m, n) for(int i = m;i < n;i++)
#define FORR(i, m, n) for(int i = m;i >= n;i--)
#define CI cin >>
#define CO cout <<
#define E << endl;

using namespace std;

typedef pair<int, int> P;
typedef pair<long, long> LP;
typedef pair<int, P> PP;
typedef pair<long, LP> LPP;



int dy[] = { 0, 0, 1, -1, 0 };
int dx[] = { 1, -1, 0, 0, 0 };

int A = 0, B = 0, K = 0, T = 0, W = 0, N = 0, H = 0;
double V = 0;
int n = 0;
double L = 0;
double S = 0;
double ar = 0, br = 0, cr = 0;
int answer = 0;

string C;
string sA, strB;
vector<vector<char>> map;
vector<double> num;
vector<string> str;

int sum = 0;

vector<int> value;
vector<int> weight;

int dp[110][10010];

int data_[210][2] = { -2 };

void input(void) {
	
	return;
}


int main(void) {
	double t = 0;
	double y = 0;
	double N_ = 0;

	while (scanf_s("%lf", &V) != EOF) {
		t = V / 9.8;
		y = 4.9 * t * t;
		N_ = (y + 5) / 5;

		if (N_ == (double)(int)N_) {
			CO (int)N_ E
		}
		else {
			CO (int)N_ + 1 E
		}
	}
	

	return 0;
}

C++: main(){float v;for(;~scanf("%f",&v);printf("%.f\n",v*v/98+2));}

C++: #include<iostream>
using namespace std;

int main(void) {
	
	double v;
	while( cin >> v ) {
		int n;
		n = (int)(v*v/98+2);
		cout << n << endl;
	}
	return 0;
}

C++: #include <iostream>
#include <math.h>
using namespace std;

int main(){
  int i,result;
  double v;
  while(cin >> v){
    for( i = 1; i < 1000; i++ ){
      if( v < 9.8*sqrt( ( 5.0*i-5.0)/4.9 ) ){
	  result = i;
	  break;
	}
	
    }
    cout << result << endl;
  }
  return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
	int N;
	double a,t,y;
	while(cin>>a){
		t=a/9.8;
		y=4.9*(t*t);
		N=(y/5)+2;
		cout<<N<<endl;
	}
}

C++: #include <iostream>
using namespace std;

int main(){
	while(1){
		double v, t, h;
		int ans;
		cin >> v;
		t = v / 9.8;
		h = 4.9 * t * t;
		for(int i=1; i<100000;i++){
			if(h < 5*i -5){
				ans = i;
				break;
			}
		}
		cout << ans << endl;
	}
	return 0;
}

C++: #include<iostream>
#include<cmath>

using namespace std;

int main()
{
    double v, t, y;
    int n;

    while(cin>>v)
    {
        y=(4.9*(v/9.8)*(v/9.8))+5;

        cout<<ceil(y/5.0)<<endl;
    }


    return 0;
}

C++: #include <iostream>
using namespace std;

int main(){
	double v;
	while( cin >> v ){
		double t, y;
		t = v / 9.8;
		y = 4.9 * t * t;
		int floar = (y + 5) / 5 + 1;
		cout << floar << endl;
	}
}

C++: #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;
int main(){
    double vm;
    while(cin>>vm){
        double t,y;
        t = vm/9.8;
        y = 4.9*t*t;
        int i=1;
        while(y>5*i-5) i++;
        cout<<i<<endl;
    }
}