/* Subject: Contest submission for problem #1, file 1.cc */
/* cyc@imail.EECS.Berkeley.EDU */
/* Wed Sep 17 21:30:09 PDT 2003 */
/*___CONTEST_SUBMISSION___ cyc 1 */
// CS198, Assignment 3, Problem 1
// By Chris Crutchfield
// Start: 1:30 AM, Finish: 4:15 AM
// Elapsed time: 2:45, Estimated time: 3:00

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

#define NULLCHAR1 '\n'
#define NULLCHAR2 ' '

using namespace std;

struct line
{
  char assigned;
  vector<char> used;
  vector<line*> next;
  vector<line*> prev;
  line() {assigned = NULLCHAR2;};
};

bool test_for_use(line *ln, char var)
{
  if(ln == NULL)
      if(var == NULLCHAR1)
	  return false;
      else
	return true;
  for(int i = 0; i < ln->used.size(); i++)
    for(int j = 0; j < ln->prev.size(); j++)
      if(test_for_use(ln->prev[j], ln->used[i]))
	return true;
  if(var != ln->assigned)
    for(int i = 0; i < ln->prev.size(); i++)
      if(test_for_use(ln->prev[i], var))
	return true;
  return false;
}

void test_program(int setnum)
{
  string trash;
  char tmp;
  int pos;
  vector<string> keep_to_parse;
  vector<line*> program;
  vector<char> used;

  for(int i = 0; ; i++)
    {
      cin >> trash;
      trash = "";
      tmp = getchar();
      while(tmp != ';')
	{
	  if((tmp != '\n') && (tmp != ' '))
	    trash += tmp;
	  tmp = getchar();
	}
      keep_to_parse.push_back(trash);
      if(keep_to_parse[i].find("stop", 0) != string::npos)
	break;
    }

  program.resize(keep_to_parse.size());
  for(int i = 0; i < program.size(); i++)
    program[i] = new line();
  for(int i = 0; i < keep_to_parse.size(); i++)
    {
      used.resize(0);
      if(keep_to_parse[i].find("stop", 0) == string::npos)
	{
	  for(pos = keep_to_parse[i].find("F(", 0)+2; keep_to_parse[i][pos] != ')'; pos++)
	    if(keep_to_parse[i][pos] != ',')
	      used.push_back(keep_to_parse[i][pos]);
	  if((pos = keep_to_parse[i].find("goto", 0)) != string::npos)
	    {
	      pos = atoi((keep_to_parse[i].substr(pos + 4, keep_to_parse[i].length() - pos - 4)).c_str());
	      if(pos > i)
		program[i]->next.push_back(program[pos]);
	    }
	  else
	    program[i]->assigned = keep_to_parse[i][0];
	  program[i]->used = used;
	  program[i]->next.push_back(program[i+1]);
	}
    }
  program[0]->prev.push_back(NULL);
  for(int i = 0; i < program.size(); i++)
      for(int j = 0; j < program[i]->next.size(); j++)
	  program[i]->next[j]->prev.push_back(program[i]);
  if(test_for_use(program[program.size() - 1], NULLCHAR1))
    cout << "Set " << setnum << ": Possible use before definition" << endl;
  else
    cout << "Set " << setnum << ": No use before definition" << endl;
}

int main()
{
  char tmp;
  for(int i = 0; !cin.eof(); i++)
    {
      test_program(i);
      cin >> tmp;
    }
  exit(0);
}