/* Auteur: Tchetch-3 */
/* Plateforme: Linux */
/* Compilateur/version: gcc/4.0.3 */
/* Derniere modif: 10 aout 20:30 */

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

/* Si l'on veut compter avec clock() le temps d'execution */
#ifdef COUNT_TIME
#include <time.h>
#endif

/* Fonction getc_unlocked et putc_unlocked sont POSIX.1
 * Ne fonctionne pas forcement sur Win32, mais simplement la suppression des
 * redefinitions permet une compilation sur Win32
 */
#ifndef WIN32
#undef getc
#define getc getc_unlocked

#undef putc
#define putc putc_unlocked
#endif

#undef strcmp
#define strcmp StrCmp

#define IN_TAG	1
#define SPACE	2
#define IN_A	4
#define IN_IMG	8

#define BUFFER_SIZE 1024

char buffer[BUFFER_SIZE];
int a_img[BUFFER_SIZE];

#ifdef COUNT_LINK
int nb_link=0;
#endif

inline int StrCmp(char *a, char *b)
{
	while(*a!='\0'&&*b!='\0')
	{
		if(*a!=*b)
		{
			return 1;
		}
		++a;
		++b;
	}
	if(*a!=*b)
	{
		return 1;
	}
	
	return 0;
}

inline char parse_stdin()
{
	int c=0;
	static int state=0;
	int i=0, j=0;
	int *pa_img=&a_img[0];
	char *pbuffer=&buffer[0];
	
	buffer[0]='\0';
	a_img[0]=-1;
	while(i<BUFFER_SIZE)
	{
		c=getc(stdin);
		if(c==EOF)
		{
			break;
		}
		if(c=='<' && !(state & IN_TAG))
		{
			state+=IN_TAG;
			*pa_img=i;
			++pa_img;
		}
		if(state & IN_TAG)
		{
			if(c>64&&c<91)
			{
				c+=32;
			}
			
			if(c=='\n' || c=='\r')
			{
				if(*(pbuffer-1)!='=')
				{
					c=' ';
				} else {

					continue;
				}
			}
			if(c==' ')
			{
				if(!(state & SPACE))
				{
					c='\0';
				} else {
					continue;
				}
			}
			
			*pbuffer=(char)c;
			
			if(state & SPACE)
			{
				*pa_img=i;
				++pa_img;
				state-=SPACE;
			}
			if(c=='\0')
			{
				state+=SPACE;
			}
			++i;
			++pbuffer;
		}
		if(c=='>' && (state & IN_TAG))
		{
			state-=IN_TAG;
			break;
		}
	}
	*pbuffer='\0';
	*pa_img=-1;
	return c;
}

inline void get_a_img()
{
	int i=0, j=0;
	int x=0;
	int static state=0;
	char href[]="href";
	char src[]="src";
	int found=0;
	char tmp;
	char *pbuffer=&buffer[0];
	int *pa_img=&a_img[0];
	
	while((x=*pa_img)!=-1)
	{
		pbuffer=&buffer[x];
		if(*pbuffer=='<')
		{
			state=0;
		}
		if(strcmp(pbuffer, "<a")==0)
		{
			state+=IN_A;
			++pa_img;
			continue;
		} else if(strcmp(pbuffer, "<img")==0)
		{
			state+=IN_IMG;
			++pa_img;
			continue;
		}
		
		if(state & IN_A)
		{
			if(*pbuffer=='h')
			{
				j=1;
				found=1;
				while((href[j]!='\0'))
				{
					if(*(pbuffer+j)!=href[j])
					{
						found=0;
						break;
					}
					++j;
				}
				if(found && (*(pbuffer+j)<97 || 
							*(pbuffer+j)>122))
				{
					++j;
					found=0;
					while((tmp=*(pbuffer+j))!='\0')
					{
						if((tmp==' ' || 
							tmp=='>' ||
							tmp=='\'' ||
							tmp=='"') &&
								found)
						{
							break;
						}
						if((tmp>96&&tmp <123||
								tmp==47||
								tmp==46) &&
								!found)
						{
							found=1;
#ifdef COUNT_LINK
							++nb_link;
#endif
						}				
						if(found)
						{
							putc(tmp, stdout);
						}
						++j;
					}
					putc('\n', stdout);
				}
			} else {
				++pa_img;
				continue;
			}
		}
		if(state & IN_IMG)
		{
			if(*(pbuffer)=='s')
			{
				j=1;
				found=1;
				while((src[j]!='\0'))
				{
					if(*(pbuffer+j)!=src[j])
					{
						found=0;
						break;
					}
					++j;
				}
				if(found && (*(pbuffer+j)<97 || 
							*(buffer+j)>122))
				{
					++j;
					found=0;
					while((tmp=*(pbuffer+j))!='\0')
					{
						if((tmp==' ' || 
							tmp=='>' ||
							tmp=='\'' ||
							tmp=='"') &&
								found)
						{
							break;
						}
						if((tmp>96&&tmp<123 ||
								tmp==47||
								tmp==46) &&
								!found)
						{
							found=1;
#ifdef COUNT_LINK
							++nb_link;
#endif
						}				
						if(found)
						{
							putc(tmp, stdout);
						}
						++j;
					}
					putc('\n', stdout);
				}
				
			} else {
				++pa_img;
				continue;
			}
		}
		++pa_img;
	}
}

int main(int argc, char **argv)
{
	char c='a';
#ifdef COUNT_TIME
	clock_t start, end;

	start=clock();
#endif
	while(1)
	{
		c=parse_stdin();
		get_a_img();
		if(c==EOF)
		{
			break;
		}
	}
#ifdef COUNT_TIME
	end=clock();

	fprintf(stderr, "Temps d'execution %.2f\n", (double)(end-start)
			/ (double)CLOCKS_PER_SEC);
#endif
#ifdef COUNT_LINK
	fprintf(stderr, "Nombre de liens %d\n", nb_link);
#endif
	return 0;
}