import java.util.*;
public class Solution {
    public Map<Character,Integer> myMap=new HashMap<>();
    Queue<Character> queue=new LinkedList<>();


    //Insert one char from stringstream
    public void Insert(char ch)
    {
        myMap.put(ch,myMap.getOrDefault(ch,0)+1);
        queue.offer(ch);
        //清理队列头部不再是第一个不重复的字符的元素   可能有多个重复元素
        while(!queue.isEmpty()&&myMap.get(queue.peek())>1){
            queue.poll();
        }

        
    }
  //return the first appearence once char in current stringstream
    public char FirstAppearingOnce()
    {
        if(queue.isEmpty()){
            return '#';
        }
        return queue.peek(); // 队列头部的字符是第一个不重复的字符
        
    }
}