#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <cfloat>
#include <stack>
#include <queue>
#include <vector>
#include <string>
#include <iostream>
#include <set>
#include <map>
typedef long long int ll;
typedef unsigned long long int ull;
#define BIG_NUM 2000000000
#define MOD 1000000007
#define EPS 0.000000001
using namespace std;

enum ORDER{
	ADD,
	SUB,
	SET,
	IF,
	HALT,
};

struct Info{
	ORDER order;
	char var1,var2,var3;
	int con;
};

int current_var[26];
int line[50],rev_line[1001];
Info info[50];
bool check[50][16][16][16][16][16];

char table[50][51];

int main(){

	for(int a = 0; a < 50; a++){
		for(int b = 0; b < 16; b++){
			for(int c = 0; c < 16; c++){
				for(int d = 0; d < 16; d++){
					for(int e = 0; e < 16; e++){
						for(int f = 0; f < 16; f++){
							check[a][b][c][d][e][f] = false;
						}
					}
				}
			}
		}
	}

	for(int i = 0; i <= 1000; i++)rev_line[i] = -1;

	for(int i = 0; i < 26; i++)current_var[i] = -1;

	int N;
	scanf("%d",&N);

	getchar();

	int tmp,index;

	for(int i = 0; i < N; i++){
		fgets(table[i],50,stdin);

		tmp = 0;
		for(index = 0; table[i][index] != ' '; index++){
			tmp = 10*tmp+table[i][index]-'0';
		}
		line[i] = tmp;
		rev_line[tmp] = i;

		index++;
		switch(table[i][index]){
		case 'A': //ADD
			info[i].order = ADD;
			index += 4;
			info[i].var1 = table[i][index];
			current_var[info[i].var1-'a'] = 0;
			index += 2;
			info[i].var2 = table[i][index];
			current_var[info[i].var2-'a'] = 0;
			index += 2;

			if(table[i][index] >= 'a' && table[i][index] <= 'z'){
				info[i].var3 = table[i][index];
				current_var[info[i].var3-'a'] = 0;
			}else{
				tmp = 0;
				for(;table[i][index] >= '0' && table[i][index] <= '9';index++){
					tmp = 10*tmp + table[i][index]-'0';
				}
				info[i].var3 = '@';
				info[i].con = tmp;
			}
			break;
		case 'S':
			if(table[i][index+1] == 'U'){
				info[i].order = SUB;
				index += 4;
				info[i].var1 = table[i][index];
				current_var[info[i].var1-'a'] = 0;
				index += 2;
				info[i].var2 = table[i][index];
				current_var[info[i].var2-'a'] = 0;
				index += 2;

				if(table[i][index] >= 'a' && table[i][index] <= 'z'){
					info[i].var3 = table[i][index];
					current_var[info[i].var3-'a'] = 0;
				}else{
					tmp = 0;
					for(;table[i][index] >= '0' && table[i][index] <= '9';index++){
						tmp = 10*tmp + table[i][index]-'0';
					}
					info[i].var3 = '@';
					info[i].con = tmp;
				}
			}else{
				info[i].order = SET;
				index += 4;
				info[i].var1 = table[i][index];
				current_var[info[i].var1-'a'] = 0;
				index += 2;
				if(table[i][index] >= 'a' && table[i][index] <= 'z'){
					info[i].var2 = table[i][index];
					current_var[info[i].var2-'a'] = 0;
				}else{
					tmp = 0;
					for(;table[i][index] >= '0' && table[i][index] <= '9';index++){
						tmp = 10*tmp + table[i][index]-'0';
					}
					info[i].var2 = '@';
					info[i].con = tmp;
				}
			}
			break;
		case 'I':
			info[i].order = IF;
			index += 3;
			info[i].var1 = table[i][index];
			current_var[info[i].var1-'a'] = 0;
			index += 2;

			tmp = 0;
			for( ;table[i][index] >= '0' && table[i][index] <= '9'; index++){
				tmp = 10*tmp+table[i][index]-'0';
			}
			info[i].con = tmp;
			break;
		case 'H':
			info[i].order = HALT;
			break;
		}
	}

	int array[5];
	int var_num = 0;
	for(int i = 0; i < 26; i++){
		if(current_var[i] == 0){
			array[var_num] = i;
			var_num++;
		}
	}

	bool LOOP_FLG = false,HALT_FLG = false;

	int line = 0;
	int tmp_1,tmp_2;
	int num[5];

	while(true){

		switch(info[line].order){
		case ADD:
			tmp_1 = current_var[info[line].var2-'a'];

			if(info[line].var3 == '@'){
				tmp_2 = info[line].con;
			}else{
				tmp_2 = current_var[info[line].var3-'a'];
			}

			if(tmp_1+tmp_2 >= 16){
				HALT_FLG = true;
			}else{
				current_var[info[line].var1-'a'] = tmp_1+tmp_2;
			}
			line++;
			break;
		case SUB:
			tmp_1 = current_var[info[line].var2-'a'];

			if(info[line].var3 == '@'){
				tmp_2 = info[line].con;
			}else{
				tmp_2 = current_var[info[line].var3-'a'];
			}

			if(tmp_1-tmp_2 < 0){
				HALT_FLG = true;
			}else{
				current_var[info[line].var1-'a'] = tmp_1-tmp_2;
			}
			line++;
			break;
		case SET:
			if(info[line].var2 == '@'){
				tmp_1 = info[line].con;
			}else{
				tmp_1 = current_var[info[line].var2-'a'];
			}
			current_var[info[line].var1-'a'] = tmp_1;
			line++;
			break;
		case IF:
			if(current_var[info[line].var1-'a'] == 0){
				line++;
			}else{

				if(rev_line[info[line].con] == -1){
					HALT_FLG = true;
				}else{

					for(int i = 0; i < 5; i++)num[i] = 0;

					for(int i = 0; i < var_num; i++){
						num[i] = current_var[array[i]];
					}

					if(check[line][num[0]][num[1]][num[2]][num[3]][num[4]]){
						LOOP_FLG = true;
						break;
					}else{
						check[line][num[0]][num[1]][num[2]][num[3]][num[4]] = true;
					}

					line = rev_line[info[line].con];
				}
			}
			break;
		case HALT:
			HALT_FLG = true;
			break;
		}
		if(LOOP_FLG == true || line == N || HALT_FLG == true)break;
	}


	if(LOOP_FLG){
		printf("inf\n");
	}else{
		for(int i = 0; i < 26; i++){
			if(current_var[i] != -1){
				printf("%c=%d\n",'a'+i,current_var[i]);
			}
		}
	}

	return 0;
}

Measured memory_bytes: 54416