# Processing JS (modified) 121 bytes
    var g="1N23456",a="",c=0; for(var i=0;i<a.length;i++){if(a[i]==="d"&&c>0){c--;}else if(c<6&&a[i]==="u"){c++;}}println(g[c]);
Ungolfed

    var g=[1,"N",2,3,4,5,6],a="",c=0;
    for(var i=0;i<a.length;i++)
    {if(a[i]==="d"&&c>0)
    {
        c--;
    
    }else if(c<6&&a[i]==="u")
    {
        c++;
        
    }
    
    }
    println(g[c]);
[Try it online!](https://www.khanacademy.org/computer-programming/new-program/5820138749755392)

I went with PJs since I know it well. The only problem is the version I use is _very_ strictly typed. I can't leave out brackets and lots of other tricks. It is pretty simple. The input should go into the variable `a` and it takes lowercase `u d`. The program loops until it hits the end of the string and every iteration it checks to see if it is a u or a d. If it is and it won't try and "shift" past where you can it shifts. At the end I print the results!