package chelper; import java.util.ArrayList; import java.util.List; import io.InputReader; import io.OutputWriter; import misc.GCJSolution; import misc.SimpleSavingChelperSolution; public class TaskA extends GCJSolution { public void solve(int testNumber, InputReader in, OutputWriter out) { wrapSolve(testNumber, in, out); } long get(List a) { long res = 0; long t = 1; for (int i : a) { res += i * t; t *= 2; } return res; } @Override public void solve(int testNumber) { long d = in.nextLong(); String s = in.nextString(); List a = new ArrayList<>(); int t = 0; for (char c : s.toCharArray()) { if (c == 'C') { a.add(t); t = 0; } if (c == 'S') { t++; } } if (t > 0) { a.add(t); } int c = 0; while (get(a) > d) { c++; if (a.size() == 1) { out.println("IMPOSSIBLE"); return; } a.set(a.size() - 1, a.get(a.size() - 1) - 1); a.set(a.size() - 2, a.get(a.size() - 2) + 1); if (a.get(a.size() - 1) == 0) { a.remove(a.size() - 1); } } out.println(c); } }