// compile with: g++ hello.cpp

#include<iostream>
#include<string>
#include<vector>

using namespace std;

int main(int argc, char * argv[]) {

  string s;

  // declares a vector of strings.  vector is like an array.
  // note that for vector you don't have to declare size, it will allocate when needed.
  // note that vector is a templated type, you give it what kind of thing you want
  //  to store, in this case string
  vector<string> words;

  // while there is input
  while (cin >> s) {
    // add the string to the words vector
    words.push_back(s);
  }

  // note: .size method in vector
  for(int i= words.size()-1; i >= 0; i--)
    cout << words[i] << endl;

  // loop through vector using iterator.  a c++ iterator is generic
  // enough to work for vectors (array), lists (linked list), maps (bst)
  for (vector<string>::iterator it = words.begin() ;
       it != words.end();
       ++it)
    cout << *it << endl;
  
  return 0;
}