#include<bits/stdc++.h>
#define pb push_back
using namespace std;
string s;
string now;
int ans[100005];
int main(){
	cin>>s;
	bool none=1;
	for(int i=0;i<(int)s.size();i++)
		none&=(s[i]=='_');
	if(none==1){
		puts("0");
		puts("");
		return 0;
	}
	bool mrk=0;
	for(int k=0;k<=3;k++){
		if(mrk && k==3){
			k--;
			mrk=0;
		}
		else if(k==3) break;
		bool flag=1;
		now="";
		memset(ans,0,sizeof(ans));
		for(int i=0;i<(int)s.size();i++)
			now+='_';
		for(int i=0;flag && i<(int)s.size();i++)
			if(s[i]=='#'){
				if(i-k<0){
					flag=0;
					break;
				}
				int cnt=0;
				for(int j=i-1;flag && j>=i-k;j--){
					if(now[j]=='#'){
						flag=0;
						break;
					}
					now[j]='#';
					cnt++;
				}
				if(!flag) break;
				for(int j=i;j<(int)s.size() && s[j]=='#';j++){
					now[j]='#';
					cnt++;
				}
				ans[i-k]=cnt;
				if(i+cnt-k-1+k>=(int)now.size()){
					flag=0;
					break;
				}
				i=i-k+cnt-1;
			}
		if(!flag) continue;
		int cnt=0;
		for(cnt=0;cnt<(int)now.size() && now[cnt]=='_';cnt++);
		cnt--;
		if(cnt==0) continue;
		if(cnt!=-1 && k==0) continue;
		if(cnt>=1 && k==1){
			mrk=1;
			k++;
		}
		if(k==1 && cnt!=-1){
			if(cnt%2==0)
				continue;
			for(int i=0;i<cnt;i+=2)
				ans[i]=1;
		}
		else if(cnt!=-1){
			if(cnt%2==0){
				ans[0]=2;
				for(int i=3;i<cnt;i+=2)
					ans[i]=1;
			} 
			else{
				for(int i=0;i<cnt;i+=2)
					ans[i]=1;
			}
		}
		int cnt1=(int)now.size()-1;
		for(;cnt1>=0 && now[cnt1]=='_';cnt1--);
		cnt1++; cnt1+=k;if(mrk) cnt1++;
		if(cnt1==now.size()-1) continue;
		if(k==0 && cnt1!=now.size()) continue;
		if(k==1 && (int)now.size()-cnt1-1>0){
			if(((int)now.size()-cnt1-1)%2==0)
				continue;
			for(int i=cnt1+1;i<(int)now.size();i+=2)
				ans[i]=1;
		}
		else if((int)now.size()-cnt1-1>0){
			if(((int)now.size()-cnt1-1)%2==0){
				for(int i=cnt1+1;i<(int)now.size()-2;i+=2)
					ans[i]=1;
				ans[(int)now.size()-2]=2;
			}
			else{
				for(int i=cnt1;i<(int)now.size();i+=2)
					ans[i]=1;
			}
		}
		cnt1--;cnt1-=k;if(mrk) cnt1--;
		for(;cnt1>=0 && now[cnt1]=='#';cnt1--);
		cnt1++;
		for(int i=cnt+1;i<cnt1;i++)
			if(now[i]=='#'){
				int j=i+ans[i];
				while(j<(int)now.size() && now[j]=='_') j++;
				j--;
				//[i+ans[i]+1,j-1]
				if(j-i-ans[i]-1<0) continue;
				if((j-i-ans[i]-1)%2==0 && k==1){
					flag=0;
					break;
				}
				if(k==1){
					for(int l=i+ans[i]+1;l<=j-1;l+=2)
						ans[l]=1;
				}
				else{
					if((j-i-ans[i]-1)%2==0){
						ans[i+ans[i]+1]=2;
						for(int l=i+ans[i]+4;l<=j-1;l+=2)
							ans[l]=1;
					}
					else{
						for(int l=i+ans[i]+1;l<=j-1;l+=2)
							ans[l]=1;
					}
				}
			}
		if(flag){
			if(mrk){
				for(int i=0;flag && i<(int)now.size();i++)
					if(now[i]=='#'){
						int aaa=ans[i];
						if(ans[i-2]!=1){
							flag=0;
							break;
						}
						if(!flag) break;
						if(now[i-2]!='#' && ans[i-2]) ans[i-2]+=ans[i]+1;
						ans[i]=0;
						i=i+aaa-1;
					}
			}
			if(!flag) continue;
			int ncnt=0;
			for(int i=0;i<(int)now.size();i++)
				if(ans[i])
					ncnt++;
			printf("%d\n",ncnt);
			for(int i=0;i<(int)now.size();i++)
				if(ans[i])
					printf("%d ",ans[i]);
			puts("");
			return 0;
		}
	}
	puts("-1");
	return 0;
}
/*____##########*/
