import java.util.*;
import java.io.*;
import static java.lang.System.*;

class FastScanner {
  private final InputStream in = System.in;
  private final byte[] buffer = new byte[1024];
  private int ptr = 0;
  private int buflen = 0;
  private boolean hasNextByte() {
      if (ptr < buflen) {
          return true;
      }else{
          ptr = 0;
          try {
              buflen = in.read(buffer);
          } catch (IOException e) {
              e.printStackTrace();
          }
          if (buflen <= 0) {
              return false;
          }
      }
      return true;
  }
  private int readByte() { if (hasNextByte()) return buffer[ptr++]; else return -1;}
  private static boolean isPrintableChar(int c) { return 33 <= c && c <= 126;}
  public boolean hasNext() { while(hasNextByte() && !isPrintableChar(buffer[ptr])) ptr++; return hasNextByte();}
  public String next() {
      if (!hasNext()) throw new NoSuchElementException();
      StringBuilder sb = new StringBuilder();
      int b = readByte();
      while(isPrintableChar(b)) {
          sb.appendCodePoint(b);
          b = readByte();
      }
      return sb.toString();
  }
  public long nextLong() {
      if (!hasNext()) throw new NoSuchElementException();
      long n = 0;
      boolean minus = false;
      int b = readByte();
      if (b == '-') {
          minus = true;
          b = readByte();
      }
      if (b < '0' || '9' < b) {
          throw new NumberFormatException();
      }
      while(true){
          if ('0' <= b && b <= '9') {
              n *= 10;
              n += b - '0';
          }else if(b == -1 || !isPrintableChar(b)){
              return minus ? -n : n;
          }else{
              throw new NumberFormatException();
          }
          b = readByte();
      }
  }
  public int nextInt() {
      long nl = nextLong();
      if (nl < Integer.MIN_VALUE || nl > Integer.MAX_VALUE) throw new NumberFormatException();
      return (int) nl;
  }
  public double nextDouble() { return Double.parseDouble(next());}
}

class Main {
  public static final int MOD = 1000000007;
  public static final int INF = 1000000000;
  public static void main(String[] args) {
    FastScanner sc = new FastScanner();
    String S = sc.next();
    int firstL = -1;
    char prev = 'R';
    int kids[] = new int[S.length()];
    int cntR = 0;
    int cntL = 0;
    for(int i=0; i<S.length(); i++){
      if(S.charAt(i) == 'L'){
        cntL++;
        if(prev == 'R'){
          firstL = i;
          if(cntR % 2 == 0){
            kids[i-1] += cntR / 2;
            kids[i] += cntR / 2;
          }else{
            kids[i-1] += cntR / 2 + 1;
            kids[i] += cntR / 2;
          }
          cntR = 0;
        }
        prev = 'L';
      }else{
        cntR++;
        if(prev == 'L'){
          if(cntL % 2 == 0){
            kids[firstL-1] += cntL / 2;
            kids[firstL] += cntL / 2;
          }else{
            kids[firstL-1] += cntL / 2;
            kids[firstL] += cntL / 2 + 1;
          }
          cntL = 0;
        }
        prev = 'R';
      }
    }
    if(cntL % 2 == 0){
      kids[firstL-1] += cntL / 2;
      kids[firstL] += cntL / 2;
    }else{
      kids[firstL-1] += cntL / 2;
      kids[firstL] += cntL / 2 + 1;
    }
    for(int i=0; i<S.length(); i++){
      out.print(kids[i] + " ");
    }
  }
}

Measured memory_bytes: 45300