/* randline.cc
** randomize stdio on a per-line basis
**
** For some reason my C version stopped working reliably, and I don't
** feel like fixing it.  So here's a C++ version.
**
** magenta at trikuare dot cx
*/

#include <iostream>
#include <vector>
#include <string>
#include <time.h>
#include <stdio.h>

using namespace std;

int myrand()
{
	static FILE *fp = fopen("/dev/urandom", "r");
	if (!fp)
		return rand();
	int blah;
	fread(&blah, sizeof(blah), 1, fp);
	return blah;
}

int main(void)
{
	vector<string> lines;

	while (!cin.eof())
	{
		string buf;
		std::getline(cin, buf);
		lines.push_back(buf);
	}

	srand(time(NULL));
	while (lines.size())
	{
		int i = myrand()%lines.size();
		if (lines[i].length())
			cout << lines[i] << endl;
		lines[i] = lines[lines.size() - 1];
		lines.pop_back();
	}

	return 0;
}
