public interface Strategy {
    void execute();
}

class ConcreteStrategyA implements Strategy {
    public void execute() {
        System.out.println("Executing ConcreteStrategyA");
    }
}

class ConcreteStrategyB implements Strategy {
    public void execute() {
        System.out.println("Executing ConcreteStrategyB");
    }
}

class Context {
    private Strategy strategy;

    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    public void setStrategy(Strategy newStrategy) {
        this.strategy = newStrategy;
    }

    public void execute() {
        this.strategy.execute();
    }
}

public class StrategyMain {
    public static void main(String[] args) {
        ConcreteStrategyA strategyA = new ConcreteStrategyA();
        ConcreteStrategyB strategyB = new ConcreteStrategyB();
        Context context = new Context(strategyA);

        context.execute();

        context.setStrategy(strategyB);

        context.execute();
    }
}
