#line 72 "rand.w"

#line 165 "rand.w"
#include <iostream> 
#include <string>
#include <vector> 
#include <algorithm>
#line 72 "rand.w"


#line 175 "rand.w"
using namespace std;
#line 73 "rand.w"


#line 191 "rand.w"
class line : public string { };    

#line 198 "rand.w"
istream& operator>>(istream& i, line& s) {
  s.clear();
  
#line 211 "rand.w"
    while (true) {
      char c;
      i.get(c);
      if (i.eof()) 
        break;
      s.push_back(c);
      if (c == '\n') 
        break;
    }
  
#line 200 "rand.w"

  return i;
}
#line 192 "rand.w"

#line 74 "rand.w"


#line 109 "rand.w"
template <class Container>
struct randgen {
  typedef typename Container::difference_type argument_type;
  typedef typename Container::difference_type result_type;
  result_type operator()(argument_type n) 
  { 
    return lrand48() % n; 
  }
};

randgen<vector<line> > randgen1;
#line 75 "rand.w"


int main(int argc, char* argv[])
{
  
#line 226 "rand.w"
  vector<line> lines;
#line 79 "rand.w"

  
#line 128 "rand.w"
  if (argc == 2)
    srand48(atoi(argv[1]));
  else {
    srand48(7);
    cerr << "******Rerun with one command line argument, an integer, "
      << "to get a different scrambling of the output." << endl;
  }
#line 80 "rand.w"

  
#line 232 "rand.w"
  typedef istream_iterator<line> line_input;
  copy(line_input(cin), line_input(), back_inserter(lines));
#line 81 "rand.w"

  
#line 93 "rand.w"
  random_shuffle(lines.begin(), lines.end(), randgen1);
#line 82 "rand.w"

  
#line 252 "rand.w"
  typedef ostream_iterator<line> line_output;
  copy(lines.begin(), lines.end(), line_output(cout, ""));
#line 83 "rand.w"

  return 0;
}