#include <iostream>
#include <iomanip>
#include <queue>

using std::vector;
using std::greater;
using std::less;
using std::make_heap;
using std::push_heap;
using std::pop_heap;

// Удаляет элемент из min-кучи и возвращает его
int remove_from_min(vector<int>& heap)
{
	pop_heap(heap.begin(), heap.end(), greater<int>());
	int tmp = heap.back();
	heap.pop_back();
	return tmp;
}

// Удаляет элемент из max-кучи и возвращает его
int remove_from_max(vector<int>& heap)
{
	pop_heap(heap.begin(), heap.end(), less<int>());
	int tmp = heap.back();
	heap.pop_back();
	return tmp;
}

// Добавление нового элемента в min-кучу
void push_to_min(vector<int>& heap, int value)
{
	heap.push_back(value);
	push_heap(heap.begin(), heap.end(), greater<int>());
}

// Добавление нового элемента в max-кучу
void push_to_max(vector<int>& heap, int value)
{
	heap.push_back(value);
	push_heap(heap.begin(), heap.end(), less<int>());
}

// Балансирование размеров куч. Если размеры отличаются на 2,
// перекидываем элемент из одной кучи в другую
void balance_heaps(vector<int>& min, vector<int>& max)
{
	int tmp;
	if(min.size() < max.size())
	{
		tmp = remove_from_max(max);
		push_to_min(min, tmp);
	}
	if(min.size() > max.size())
	{
		tmp = remove_from_min(min);
		push_to_max(max, tmp);
	}
}

// Прочитанный из входного потока элемент добавляется в одну из двух куч.
// При этом производится балансирование размеров
void push_new_value(vector<int>& min, vector<int>& max, int value)
{
	push_to_min(min, value);
	int diff = min.size() > max.size() ? min.size() - max.size()
									   : max.size() - min.size();
	if(diff == 2)
		balance_heaps(min, max);
}

// Вычисление медианы среди всех элементов.
// Если число элементов четное, медиана вычисляется как средне арифметическое
// двух центральных элементов в упорядоченной последовательности
double find_median(vector<int>& min, vector<int>& max)
{
	if(min.size() == max.size())
	{
		pop_heap(min.begin(), min.end(), greater<int>());
		pop_heap(max.begin(), max.end(), less<int>());
		return (min.back() + max.back()) / 2.0;
	}else{
		pop_heap(min.begin(), min.end(), greater<int>());
		return min.back();
	}
}

int main()
{
	std::vector<int> min_heap;
	std::vector<int> max_heap;

	int value;
	while(std::cin >> value)
	{
		push_new_value(min_heap, max_heap, value);
		std::cout << std::setprecision(2) << find_median(min_heap, max_heap) << std::endl;
	}
}