semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main(){
int i,k;
char jz[2][1001];
 k=0;
 gets(jz[0]);
 for(i=0;i<strlen(jz[0]);i++){
  if(jz[0][i]!=' '||jz[0][i]==' '&& jz[0][i-1]!=' '){
   jz[1][k]=jz[0][i];
   k++;
}
}
jz[1][k]='\0';
printf("%s",jz[1]);
return 0;
}
int main()
{
    int n,i,k,l,j;
	char s[200],c[200];
    gets(s);
	j=1;
	c[0]=s[0];
	for(k=1;s[k]!='\0';k++)
	{
	if(s[k-1]==32)
		{
			if(s[k]!=32) {c[j]=s[k];j++;}
		}
		else{
			c[j]=s[k];
			j++;
		}
	}
	c[j]='\0';
	 puts(c);
return 0;
}
int main()
{
	char a[1000];
	char *p[1000];
	int i;
	cin.getline(a,1000);
	for(i=0;i<strlen(a);i++)
	{
		if(a[i]!=' ')
		{
			p[i]=&a[i];
		}
		else
		{
			p[i]=NULL;
		}
	}
	for(i=0;i<strlen(a);i++)
	{
		if(p[i]!=NULL)
		{
			cout<<*p[i];
		}
		else if(p[i+1]!=NULL)
		{
			cout<<" ";
		}
		else
			continue;
	}
	return 0;
}
char c[1000];
int i=0;
int main( )
{
	cin>>c[0];
	cout<<c[0];
	while(c[i]!='\n')
	{
		i++;
		c[i]=cin.get( );
		
	}

	
	i=1;
	while(c[i]!='\n')
	{
		
		
		if(c[i]==' ')
			{   ++i;
				continue;
		    }
		if(c[i]!='\0'&&c[i-1]!=' ') cout<<c[i];
		if(c[i]!='\0'&&c[i-1]==' ') cout<<" "<<c[i];
	    i++;
	}
	
	return 0;
}
main()
{
    char str[210];
    int i,n;
    gets(str);
    printf("%c",str[0]);
    for(i=1,n=strlen(str);i<n;i++)
    {
        if(str[i]==' '&&str[i-1]==' ');
        else
            printf("%c",str[i]);
    }
    printf("\n");
    }
int main (){
	char x[100];
	char y[100];
	int i,k,t;
	gets(x);
	k=0;
	t=strlen(x);
	for(i=0;i<t;i++){
		if(x[i]!=' '){
			y[k]=x[i];
			k=k+1;
		}
		if(x[i]==' '&&x[i+1]!=' '){
			y[k]=x[i];
			k=k+1;
		}
	}
	y[k]='\0';
	puts(y);
	return 0;
}
int main()
{
	int sum = 0; // 
	char a[100], *p = a, *q;
	cin.getline(a, 100);
	while (*p != '\0')
	{
		q = p; 
		if (*p == ' ' && *(p + 1) == ' ')
		{
			for (; *p != '\0'; p++)
				*p = *(p + 1);
			p = q;
		}
		else
			p++;
	}
	cout << a << endl;
	return 0;
}
int main()
{
	char a,s[100][100];
	int n=0,i=1,j=1,remj[100],remi,out=0,count=1;
	 while(cin.get(a) && a!='\n')//?????????
	  {if(a!=' ')
	    {count=1;s[i][j]=a;j++;}//???i?????j???????????
	  else if(a==' ')
	    {if(count==1)
		{remj[i]=j-1;j=0;i++;s[i][j]=a;j++;}//????????????????i????j
	     count++;//???????
	    }
	  }
	  remj[i]=j-1;//????????????
	 remi=i;	//remi?????

	 for(i=1;i<remi;i++)
		 for(j=1;j<=remj[i];j++)
		{cout<<s[i][j];out++;//?????????????
	      if(out==remj[i])//?????????????????
		  {cout<<' ';out=0;}
	    }
	 for(j=1;j<=remj[remi];j++)
		 cout<<s[remi][j];//????????


	return 0;
}
//*************************
//*  ?????????? 
//*  ????? 
//*  ???1200012941 
//*  ???2012?12?2? 
//*************************
int main()
{
      int i, j;
      char str[100];
      cin.getline(str, 100);
      int len = strlen(str);
      int flag = 0;
      char *p = NULL;
      for (p = str; *p != '\0' ; p++)
      {
           if (*p == ' ')
           {
              if (flag == 0)
              {
                  flag = 1;
              }
              else
              {
                  while (*p == ' ')
                  {
                         for (char *pp = p; *pp != '\0'; pp++)
                         {
                              *pp = *(pp + 1);
                         }
                  }
                  flag = 0;
              }
           }
           else
           {
               flag = 0;
           }
      }
      for (p = str; *p != '\0'; p++)
      {
          cout << *p; 
      }
      return 0;
}
int main(){
    int len,i,j;
    char sz[400];
    gets(sz);
	len=strlen(sz);
    for(i=0;i<len;i++){	
		if(sz[i]==' '){
			if(sz[i+1]==' '){
				for(j=i+1;j<len;j++){
				   sz[j-1]=sz[j];
				}
				sz[len-1]='\0';
				len--;
			}
			if(sz[i+1]==' '){
			   i--;
			}
		}
    }
	printf("%s",sz);
	
     
return 0;
}
int main()
{
	char a[200];
	gets(a);
	printf("%c",a[0]);
	for(int i=1;i<strlen(a);i++)
	{
		if(a[i-1]!=' ' && a[i]!=' ')
		{	printf("%c",a[i]);
		continue;
		}
		else if(a[i-1]==' ' && a[i]!=' ')
			printf(" %c",a[i]);
	}

	return 0;
}
int main()
{
	char c[100];
	int i,t;
	for(i=0;i<100;i++)
	{scanf("%c",&c[i]);
	if(c[i-1]==' '&&c[i]==' ') i--;
	if(c[i]=='\n') break;}
	for(t=0;t<i;t++)
		printf("%c",c[t]);
	return 0;
}
int main()
{
    char s[201];
    gets(s);
    int space;
    for(int i=0;s[i]!='\0';i++)
    {
	space=0;
	if(s[i]!=' '&&s[i+1]==' '&&s[i+2]==' ')
        {
	    for(int j=i+1;s[j]==' ';j++)
            {
		 space++;
            }
	    for(int t=0;t<strlen(s);t++)
            {
		 s[i+2+t]=s[i+1+t+space];
	    }
	}
    }
    puts(s);
return 0;
}
int main()
{ int j=0,i;
 char a[1000],b[1000],c;
 for(i=0;i<=1000;i++)
	 {c=getchar();
	 a[i]=c;
     if(c=='\n') break;
     }
 for(i=0;i<=1000;i++)
	 {if(a[i]!=' '){b[j]=a[i];j++;}
	  if(a[i]==' '&&a[i-1]!=' '){b[j]=a[i];j++;}
	  if(a[i]=='\n'){ b[j]=a[i];break;}
	  else continue;
     }
 for(i=0;i<=j;i++)
 {cout<<b[i];}
 return 0;
}
int main()
{
	char *p, a[100];
	int leap = 0;
	p = a;
	do
	{
		cin.get(*p);
		if (*p != ' ')
		{
			cout << *p;
			leap = 0;
		}
		if (*p == ' ' && leap == 0)
		{
			cout << *p;
			leap = 1;
		}
	}while (*p++ != '\n');
	cout << endl;
	return 0;
}
int main()
{
	char str[1000];
	int i = 1, l, j;
	cin.getline( str, 1000, '\n' );
	l = strlen(str);
	while ( str[i] != '\0' )
	{
		if ( str[i - 1] == ' ' && str[i] == ' ' )
		{
			for ( j = i; j < l - 1; j++ )
			{
				str[j] = str[j + 1];
			}
			l--;
		}
		else
			i++;
	}
	for ( i = 0; i < l; i++ )
		cout << str[i];
	return 0;
}
int main(){
	int i,s1[10000];
	char s[10000];
	gets(s);
	for(i=0;s[i];i++){
		s1[i]=0;
		if(s[i]==' '&&s[i+1]==' '){
			s1[i]=0;
		}else{
			s1[i]=1;
		}
	}
	for(i=0;s[i];i++){
		if(s1[i]==1){
			printf("%c",s[i]);
		}
	}
	return 0;
}
int main()
{
    char a[10000];
    cin.getline(a,10000);
    int L=strlen(a);
    char *p=a;
    int num=0;
    for(int i=0;*(p+i)!='\0';i++)
    {
    	if(*(p+i)==' ' && *(p+i+1)==' ' )
    	{
    		for(int j=i;j<L-1-num;j++)
    		*(p+j)=*(p+j+1);
    		i--;
    		num++;
    	}
    }
    for(int i=0;i<L-num;i++)
     cout<<*(p+i);
   cout<<endl;
	return 0;
}
//********************************
//*????1.cpp                **
//*??????????         **
//*?????? 1200012834      **
//*???2012.11.30             **
//********************************


void del(char str[100])         // ????????del
{
	int i, j, count;            // count????????????????
	for (i = 0; str[i] != '\0'; i++)
	{
		if (str[i] == ' ' && str[i+1] == ' ')  // ????????
		{
			count = 0;
			for (j = i + 1; str[j+1] != '\0'; j++)  // ???????????
			{
				str[j] = str[j+1];
				count++;            // ?????????
			}
			str[i+1+count] = '\0';  // i+1+count??????str???
			                        // ????????????\0??
			i--;                    // i?????????
		}
	}
	cout << str;
}

int main()
{
	char str[100];
	cin.getline(str, 100);  // ?????
	del(str);
	return 0;
}
int main(){
	char a[1000];
	int i,j,k,n;
	gets(a);
	printf("%c",a[0]);
	for(i=1;a[i];i++)
	{
		if(a[i]!=' ')
		printf("%c",a[i]);
		else if(a[i]==' ')
		{
			if(a[i-1]!=' ')
		    {
		       printf("%c",a[i]);
		     }
	
	    }
	}

		return 0;
}
void main()
{
	char a[200],c[200];
	int i,j=0,n;
	gets(a);
	n=strlen(a);
	for(i=0;i<n;i++){
		if((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122)){
			j++;
			c[j]=a[i];
		}
		else if(a[i]==' '){
			if(a[i+1]!=' '){
				j++;
				c[j]=a[i];
			}
		}
		else{
			j++;
			c[j]=a[i];
		}
	}
	for(i=1;i<=j;i++)
	printf("%c",c[i]);
}
int main(){
       char s[205];
       char a[205];
       int i,m;
       gets(s);
       int len;
       i=0;
       len = strlen(s);
         for(int j = 0; j < len; j++) 
        {
           if (s[j]!=' ')
             a[i]=s[j];
           else if((s[j]=' ')&&(s[j+1]!=' '))
             a[i]=s[j];
           else continue;
            i++;
         }
         printf("%s",a);
       return 0;
}
main()
{
     char a[200];
     gets(a);
     int i,j;
     int len=strlen(a);
     char b[200];
     j=0;
     for(i=0;i<len;i++)
     {
         if((a[i]!=' '&&a[i+1]!=' '))
         {b[j]=a[i];
          j++;
          }
         else if((a[i]!=' ')&&(a[i+1]==' '))
         {b[j]=a[i];
          b[j+1]=a[i+1];
          j=j+2;
          i++;}
         
     }
     for(i=0;i<j;i++)
     printf("%c",b[i]);
      
}
main()
{
    int l,i,j,count;
    char a[100];
    gets(a);
    l=strlen(a);
    count=0;
    for(i=0;i<l-1;i++)
    {
            if(a[i]==' ')
          {
              if(a[i+1]==' ')
              {
                    for(j=i;j<l-1;j++)
                    {
                               a[j]=a[j+1];
                               }
                               count++;
                               a[l-count]='\0';
                               i=i-1;
              }
              }
    } 
       printf("%s",a);
       getchar();
       getchar();
}
int main()
{
	int n,i,j=0,k,len,sum=0;
	char a[300],b[300];
        gets(a);
        len=strlen(a);
     for(i=0;i<len;i++)
	 {
           if(a[i]!=' '||a[i]==' '&&a[i+1]!=' ')
		   {  
			   b[j]=a[i];
			   j++;
		   }
		   else if(a[i]==' '&&a[i+1]==' ')
		    continue;
	}

	    b[j]='\0';
			printf("%s",b);
	return 0;
}
char str[100] = {0};
int flag = 0;
int len;
void clear (char *a)
{
	if(a == str)
	{
		cout << *a ;
		return;
	}
	else
		if(*a == 32 && flag != 0)
			clear (a - 1);
		else
			if (*a == 32)
			{
				flag ++;
				clear(a-1);
				cout << ' ';
			}
			else
			{
				flag = 0;
				clear (a-1);
				cout << *a;
			}
}				

int main()
{
	cin.getline(str,100);
    len = strlen(str);
	clear (str+len-1);
	return 0;
}
main()
{
	char a[10000];
	gets(a);
	int s=strlen(a);
	for(int i=0;i<s-1;i++)
	{
		if(a[i]!=' ')
		{
			printf("%c",a[i]);
			if(a[i+1]==' ')
			{
				printf(" ");
			}
		}
	}
	printf("%c",a[s-1]);
}
/*
 * longwords.cpp
 *
 *  Created on: 2013-11-4
 *      Author: dyx
 */
int main()
{
	char words[100];
	cin.getline(words,100);

	int i,j=0;
	for(i=0;words[i]!='\0';i++)
	{
		if(words[i]==' ')
		{
			if(j==1)
				continue;
			if(j==0)
				j++;
		}
		if(words[i]!=' ')
			j=0;
		cout << words[i];
	}


}
int main()
{
	char a[200];
	int i=0,t=0,j=0;
	cin.getline(a,200,'\n');
	while(a[t]!='\0')
		t++;
	for(i;i<t;i++)
		if((a[i]==' ')&&(a[i-1]==' '))
		{
			int u=i;
			for(u;u<t;u++)
				a[u]=a[u+1];
			i--;
		}
		while(a[j]!='\0')
		{
			cout<<a[j];
			j++;
		}
	
	return 0;
}
//
//  main.cpp
//  ???????
//
//  Created by ? ?? on 12-11-30.
//  Copyright (c) 2012? ? ??. All rights reserved.
//


int main()
{
    char a[1000];
    cin.getline(a, 1000);
    int la = strlen(a);
    int i, j, k;
    char *p;
    for (i = 0; i < la; i++)
    {
        if (a[i] == ' ')
        {
            j = 0;
            while (a[i + 1 + j] == ' ') j++;
            if (j > 0)
            {
                la = la - j;
                for (k = i + 1; k < la; k++)
                {
                    a[k] = a[k + j];
                }
            }
        }
    }
    for (p = a; p < &a[la]; p++)
    {
        cout << *p;
    }
    return 0;
}
int main()
{
	char s[number];
	int i, n, x;
    gets(s);
	for(i=0;i<255;i++)
	{
		if(s[i]==' '&&s[i+1]==' ')
		{
			for(n=i;n<255;n++)
				s[n]=s[n+1];
			i=i-1;
		}
	}
	puts(s);
	return 0;
}
int main()
{
	char str[200];
	gets(str);
	int len=strlen(str);
	int i,j,f=0;
	for(i=0;i<len-f;i++){
		if(str[i]==' '&&str[i+1]==' '){
			for(j=i;j<len-f;j++){
				str[j]=str[j+1];
				i=0;
			}
			str[len-f-1]='\0';
			f++;
		}
	}
	puts(str);
	return 0;
}
int main(){
	int i, k, j, m;
	char a[300], zm;
	gets(a);
	for(i=0;a[i]!='\0';i++){
		if(a[i]==' '){
			m=i;
			for(j=i;a[j]!='\0';j++){
				if(a[j]!=' '){
					break;
				}
				 }
			for(k=j;a[k]!='\0';k++){
				zm=a[k];
				a[m+1]=zm;
				m++;
			}
			a[m+1]='\0';
		}
	}
	printf("%s", a);

	return 0;
}
int main()
{
	int i;
	char zfc[MAX];

	gets(zfc);

	for(i=0;zfc[i];i++){
		if(zfc[i]!=' '){
			printf("%c",zfc[i]);
		}
		
		if(zfc[i]==' '&&zfc[i+1]!=' '){
			printf("%c",zfc[i]);
		}
	}
   return 0;
}
void main()
{	
	char c[10000];
	int i,n;
	gets(c);
	for(i=0;c[i]!='\0';i++)
		if(c[i]!=' ')
			printf("%c",c[i]);
		else if(c[i]==' '&&c[i+1]!=' ')
			printf("%c",c[i]);
}
int main()
{

char str[100];
int i;
gets(str);
for(i=0;i<strlen(str);i++)
if(str[i]!=' ')
printf("%c",str[i]);
else if(str[i]==' ')
{if(str[i-1]!=' ')
printf("%c",str[i]);
}

return 0;
}
int main()
{
	int flag = 1;
	char *p, sentence[100];
	cin.getline(sentence, 100, '\n');
	for(p = sentence ; p <= sentence + strlen(sentence) - 1 ; p ++)
	{
		if(*p != ' ')
		{
			cout << *p;
			flag = 1;
		}
		else if(flag)
		{
			cout << ' ';
			flag = 0;
		}
	}
	return 0;
}
int main() {
	char array[1000], cur[1000];
	cin.getline(array, 1000);
	int len = strlen(array), step = 0;
	for (int i = 0; i < len; i++) {
		if (array[i] != ' ')
			cur[step++] = array[i];
		else {
			if (i != 0 && array[i - 1] != ' ' && array[i - 1] != '.')
				cur[step++] = array[i];
		}

	}
	for (int i = 0; i < step; i++)
		cout << cur[i];
	return 0;
}
int  main()
{
	char s[301];
	char *p=s;
	gets(s);
	cout<<*p;
	for(int i=1;i<strlen(s);i++)
	{
		if(p[i]==' '&&p[i-1]==' ')
		continue;
		else
		cout<<p[i];
	}
	//while(1);
	return 0;
}
char a[1000],b[1000];
int main(){	
	int len,n=0,i,j=0;
	gets(a);
	len=strlen(a);
	for(i=0;i<len;i++){
		if(a[i]!=' '){
			b[j]=a[i];
			j++;
		}
		else if(a[i]==' '&&a[i+1]!=' '&&a[i-1]!=' '){
			b[j]=a[i];
			j++;
		}
		else if(a[i]==' '&&a[i+1]==' '&&a[i-1]!=' '){
			b[j]=a[i];
			j++;
		}
		else if(a[i]==' '&&a[i+1]!=' '&&a[i-1]==' '){
		}
		else if(a[i]==' '&&a[i+1]==' '&&a[i-1]==' '){
		}
    }
	printf("%s",b);

}
int main()
{
	char a[100];
	int len,i,flag;
	gets(a);
	len=strlen(a);
	for(i=0;i<len;i++)
	{
		if(a[i]!=' '){printf("%c",a[i]);flag=1;}
		else if(flag){printf(" ");flag=0;}
	}
	printf("\n");
}
int main()
{
	char Sentence[501];
	char *pos = Sentence, *shift = NULL;
	cin.getline(Sentence, 501);

	for ( ; *pos != '\0'; pos++)
	{
		if (*pos != ' ')
			cout << *pos;
		else
		{
			cout << *pos;
			shift = pos + 1;
			for ( ; *shift == ' '; )
				shift++;
			pos = shift;
			cout << *pos;
		}
	}
	cout << endl;
	return 0;
}
//********************************
//*???1.cpp   **
//*?????? 1200012768 **
//*???2012.12.1  **
//*??????????  **
//********************************
int main()
{
	char ch;
	int flag = 0;
	while((ch = cin.get()) != '\n')
	{
		if (ch != ' ')
		{
			cout << ch;
			flag = 0;
		}
		else if (flag == 0)
		{
			cout << ' ';
			flag = 1;
		}
	}
	return 0;
}
int main()
{
	int i,j=0;
	char word1[100]={'\0'},word2[100]={'\0'};
	cin.getline(word1,100);
	for(i=0;;i++)
	{
		if(word1[i]=='\0')
			break;
		if(word1[i]!=' ')
		{
			word2[j]=word1[i];
			j++;
		}

		if(word1[i]==' '&&word1[i+1]!=' ')
		{
			word2[j]=word1[i];
			j++;
		}
	}
	for(i=0;i<j;i++)
		cout<<word2[i];
	return 0;
}
int main()
{
	char *p,*q;
	int i,j,knum=0;
	p=(char*)malloc(1000*sizeof(char));
    q=(char*)malloc(1000*sizeof(char));
	gets(p);
	for(i=0,j=0;*(p+i)!='\0';i++)
	{
		if(*(p+i)!=' ')
		{
			knum=0;
			*(q+j)=*(p+i);
			j++;
		}
		else
		{
			if(knum==0)
			{*(q+j)=*(p+i);j++;}
			knum++;
		}
	}
	*(q+j)='\0';
   puts(q);
}
//****************************************
//*???      ??????    **
//*????? 1100012996       **
//*???2011.11.23**
//****************************************
int main() 
{ 
	int i = 0 ; //i?????? 
	char *p , *m ;  //???????? 
	char str[100] ; //???????? 
	gets(str) ;
	m = str ; 
	p = str ; 
	while( str[i] != '\0' )
	{ 
		if ( str[i] == ' ' ) //????????????????? 
		{ 
			*p = ' ' ; //???????' ' 
			p++ ; //p????????? 
			while ( str[i] == ' ' ) //????????????????? 
				 i++ ; 
			*p = str[i] ; //???p?????
		}	
		else //??????? 
		{ 
			*p = str[i] ;
			p++ ; 
			i++ ;
		} 
	}
	*p = '\0' ; 
	cout << m << endl ; //???????? 
	return 0; 
}
int main(){
	char a[101],b[101];
	int i,j=1;
	gets(a);
	b[0]=a[0];
	for(i=1;a[i]!=0;i++){
    b[j]=a[i];
	if((b[j]!=b[j-1])||(b[j]!=32)){	
	b[j]=a[i];
	j++;
	}
    b[j]=0;
	}
	puts(b);
	return 0;
}
int main()
{
	int t,i=0;
	char *p,c;
	p=(char*)malloc(100*sizeof(char));
	for(;(c=getchar())!='\n';)
	{
		if(c!=' ')
		{
			*(p+i)=c;
			i++;
			t=0;
		}
		if(c==' '&&t==0)
		{
			*(p+i)=c;
			i++;
			t++;
		}
	}
	*(p+i)='\0';
	printf("%s",p);
	free(p);
}
main()
{
	char c,d;
	while((c=getchar())!='\n')
	{
		if(c!=' '||d!=' ') putchar(c);
	    d=c;
	}
	printf("\n");
	return 0;
}
int main()
{
	char in[210]={0},out[210]={0};
	cin.getline(in,210);
	
	int l=strlen(in);

	int j=0;
	for(int i=0;i<l;i++)
	{
		if((in[i]!=' ')||(i>0 && in[i-1]!=' '))
		{
			out[j]=in[i];j++;
		}
		else
		{
			while(i<l && in[i+1]==' ')
				i++;

		}

	}

cout<<out;
	return 0;
}
int main()
{
	int i, j, n,a, b[101] = { 0 };
	char str[101];
	cin.getline(str,101);
	a=strlen(str);
	for(i=0;i<a;i++)
	{
		if(str[i]==' '&&str[i+1]==' ')
		{
			b[i+1] = 1;
		}
	}
	for(j=0;j<a;j++)
	{
		if(b[j]==0)cout<<str[j];
	}
	return 0;
}
int main()
{
	char *str,*p;
	int n,k,i;
	str=(char*)malloc(100*sizeof(char));
	gets(str);
	p=str;
	n=strlen(str);
	k=n;
	for(i=0;i<n;i++)
	{
		if(*(p+i)!=' ')
		{
			printf("%c",*(p+i));
		}
		if(*(p+i)==' '&&*(p+i+1)!=' ')
		{
			printf(" ");
		}
	}
	return 0;
}
void main()
{
	char str[10000];int i,sum=0,j;
	gets(str);
	for(i=0;i<strlen(str);i++)
	{
		if(str[i]==' '&&str[i-1]==' ')
		
		{
			sum++;
			for(j=i;j<strlen(str);j++) 
				*(str+j)=*(str+j+1);
			i--;
		}
	}
	for(i=0;i<strlen(str);i++)
		printf("%c",str[i]);

}
void main()
{
	char *p,str[1000];
	p=str;
	gets(p);
	for(;*p!='\0';p++)
	{
		if(*p!=' ')
			printf("%c",*p);
		else if((*p==' ')&&(*(p+1)!=' '))
			printf("%c",*p);
	}
}
//???????
int main()
{
	char a[202]={'\0'};
	char *p;
	int i;
	gets(a);//?????
	p=a;//???????????
	for (i=0;i<202;i++)//????????
	{	
		if (*(p+i)=='\0')
			break;
		if(*(p+i)!=' ' || (*(p+i)==' ' && *(p+i+1)!=' '))
			cout<<*(p+i);
	}
	cout<<endl;
	return 0;
}
int main()
{
int a,b,m,n;
char cc[1000];
char an[1000]={"0"};
gets(cc);
m=strlen(cc);
b=1;
an[0]=cc[0];
for(a=1;a<=m;a++){
    if((cc[a]!=' ')||(cc[a]==' '&&cc[a-1]!=' ')){
    an[b]=cc[a];
    b++;}
}
printf("%s",an);
return 0;
}
/*
 *???: filter_spaces.cpp
 *??: ???
 *????: 2012-12-09
 *??: 
 */



int main()
{
	char input[MAXL],output[MAXL];
	char *s,*t; //??input,output???
	cin.getline(input,sizeof(input));
	for (s=input,t=output; *s; s++){
		if (*s==' '&&*(s-1)==' ')
			continue;
		*t++=*s;
	}
	*t=0; //????\0
	cout << output << endl;
	return 0;
}
void main()
{
	char s[2000],a[2000];
	int i,k,n,b;
	gets(s);
	n=strlen(s);
	k=0;
	i=0;
	while(i<n)
	{
		if(isalnum(s[i]))
		{
			b=0;
			a[k]=s[i];
			k++;
		}
		else if (b<1)
		{
			a[k]=s[i];
			k++;
			b++;
		}
		i++;
	}
	printf("%s",a);
}
int main()
{
	char a[100],b[100],c;
	int i=0,j=0,k=0;
	while(cin.get(c)&&c!='\n')
		a[i++]=c;//???????
	for(j=0;j<i;j++)
	{
		if(a[j]==32&&a[j+1]==32)
			continue;//?????????,??
		else 
			b[k++]=a[j];//??????b[100]?
	}
	for(int n=0;n<k;n++)
		cout<<b[n];//????
	return 0;
}
int main()
{
    char a[500],b[500],c=0;
    gets (a);
    int i,j;
    j=strlen(a);
    for(i=1;a[i]!='\0';i++)
    {
       
        if((a[i]!=' '&&a[i-1]==' ')||a[i-1]!=' ')
        {
            b[c]=a[i-1];
           c++;
        }
    }
    b[c]=a[j-1];
    b[c+1]='\0';
   puts (b);
   return 0;
}
int main()
{
	char a[100];
	int i,j,k,t;
	gets(a);
	for(t=0;t<100;t++)
	for(i=0;i<strlen(a);i++)
	{
		for(j=0;j<=strlen(a);j++)
		{
			if(a[j]==' '&&a[j+1]==' ')
			{
				for(k=j;k<strlen(a)-1;k++)
				{
					a[k]=a[k+1];
				}
				a[strlen(a)-1]='\0';
				break;
			}
		}
	}
	puts(a);
	return 0;
}
int main()
{
    char st[1000];
    int i,j,l;
    gets(st);
    l=strlen(st);
    for (i=0;i<l-1;i++)
    {
        if ((st[i]==' ')&&(st[i+1]==' '))          //????????????.
        {
            for (j=i;j<l;j++) st[j]=st[j+1];
            i--;                                   //????,????????
        }
    }
    cout<<st<<endl;
    return 0;
}
int main()
{
	int i = 0,j,k,n,de = 0;//de?????????
	char a[1000];
	char *p;
	p = a;
	cin.getline(a,1000);
	n = strlen(a);
	for (i = 0 ; i < n ; i ++)
	{
		if ( *(p + i) == ' ')//???
		{
			for ( j = i + 1;j < n; j ++)//????????????????????????
			{
				if ( *(p + j) == ' ' )
				{
					de ++;
					for ( k = j; k < n - 1; k ++)
						*(p + k) = *(p + k + 1);
					j --;//?????????1????j???
				}
				else break;
			}
		}
	}
	for ( i = 0; i < n - de ; i ++ )//????????
		cout << *(p + i) ;
	return 0;
}
int main()
{
	int i;
	char c[300];
	gets(c);
	i=0;
	while (c[i]!=0)
	{
		if ((c[i]==' ')&&(c[i+1]==' '))
		{
			i++;
		}
		else
		{
			printf("%c",c[i]);
			i++;
		}
	}
	return 0;
}
int main(){
	char a[10000],b[10000];
	int l,i=0,j=0;
	gets(a);
	l=strlen(a);
	while(i<l){
		if(a[i]!=' '){
			b[j]=a[i];
			i++;
			j++;
		}else if(a[i-1]!=' '){
			b[j]=a[i];
			j++;
			i++;
		}else{
			i++;
		}
	}
	puts(b);
	return 0;
}
//***********************************************
//???????
//??????
//???2012.12.2
//***********************************************


int main()
{
	char sentence[50];       //????????
	char a;
	int i = 0;               //??????????????
	char *p = NULL;
	while ( (a = getchar()) != '\n' )  //????
	{
		sentence[i] = a;
		i++;
	} 
	p = sentence;                      //???p?????????
	while (p < sentence + i)
	{
		if (*p != ' ')
		{
			cout << *p;
			p++;            //?????????????
		}
		else
		{
			cout << *p;     //????????
			while (*p == ' ')
			{
				p++;        //???????????
			}
		}
	}
	cout << endl;
return 0;
}
//????
int main()
{
	char a[101],b[101];
	char *p,*q;
	cin.getline (a,100);          //?????????
	for (p = a, q = b; *p != '\0'; p++)        //?p?q????a?b?????p
	{
		if (!((*p == ' ') && (*(p-1) == ' ')))     //????p?????????????????????????q??b?
		{
			*q = *p;						
			q++;
		}	                                 //???????
	}
	*q = '\0';                             //??????
 	cout << b << endl;
	return 0;
}
void main()
{
  char *a,*b;
  int i=0,k=-1,q=0,n,m=0;
  a=(char*)malloc(100000*sizeof(char));
  b=(char*)malloc(100000*sizeof(char));
  scanf ("%c",a);
  while (*(a+i)!='\n')
  { i++; scanf ("%c",a+i);  }
  n=i;
  for (i=0;i<n;i++)
  {
  	if (*(a+i)!=32) {q=1;k++;m++;}
	else 
	{
	if (q==1) {k++;m++;}
	 q=0;
    } 
	*(b+k)=*(a+i);
  }
  for (i=0;i<m;i++)
  {
  	printf ("%c",*(b+i));
  }
}
int main() 
{
	char *q,*p;
	int a=0;
	p=(char*)malloc(200*sizeof(char));
	q=p;
	gets(p);
	while(*q!='\0')
	{
		if(*q!=' ')
		{
			printf("%c",*q);
			a=0;
		}
		if(*q==' '&&a==0)
		{
			printf(" ");
			a++;
		}
		q++;
	}
}
int main(){
	char a[1000];
	gets(a);
	int i=0;
	int m;
	m=strlen(a);
	for(i=0;i<m;i++){
		if((i==0&&a[i]==' ')||(a[i-1]==' '&&a[i]==' ')){
			continue;
		}else{
			printf("%c",a[i]);
		}
	}

		return 0;
	}
int main()
{
	char str[100],p=1,i;
	cin.get(str,100);
		for(i=0;str[i]!='\0';i++)//??????
		{
			if(str[i]!=' ')
			{
				if(p==0)//?????????????
				{
					cout<<" "<<str[i];//??????????
					p=1;
				}
				else
					cout<<str[i];
			}
			else
			{
				p=0;
			}
		}
		return 0;
}
int main()
{
   int i,t,j,s;
   char a[210],b[210];
   gets(a);
   t=strlen(a);
   j=0;
   s=0;
   for(i=0;i<t;i++)
   {
       if(a[i]==' ')
	   {
	       if(j==0)
		   {
			   b[s]=a[i];
			   s++;
		       j++;
		   }		   
	   }
	   else
	   {
	       b[s]=a[i];
		   s++;
           j=0;
	   }
   }
   b[s]='\0';
   puts(b);
   return 0;
}
int main()
{
	char *p,a[201],b;
	int i,j,k,len;
	cin.getline(a,201);
	len=strlen(a);                   //????????????
	p=a;                             //p????????
	for(i=0;i<len;i++)
	{
		if(*p!=' ')
		{
			cout<<*p;
			p++;
			j=0;            //???????????????j ??0
		}
		else 
		{
			if(j==0)
				cout<<' ';
				p++;
				j=1;    //??????????????????j??1
		}
	}
	cout<<endl;       //?????
	return 0;
}
char il[MAX],ol[MAX];
int i,j=1;
int main()
{
    gets(il);
    ol[0]=il[0];
    for(i=1;il[i]!='\0';i++){
        if(il[i-1]!=' '||il[i]!=' '){
            ol[j]=il[i];
            j++;
        }
    }
    ol[j]='\0';
    puts(ol);
    return 0;
}
int main()
{
    char a[100];
    gets(a);
    int l=strlen(a);
    for(int i=0;i<=l-1;i++)
    {
    	if((a[i]==' ')&&(a[i+1]==' ')) 
     	{   i++;
     	    while((a[i]==' ')&&(a[i+1]==' ')){i++;}
        	printf("%c",a[i]);
		}
     	else 
     	{
			printf("%c",a[i]);
		}
    }
    int y=0;
	scanf("%d",&y);
    return 0;
}