#JavaScript [(Node.js)](https://nodejs.org), <s>125</s> 111 bytes# -14 bytes from Zacharý (x)=>{z=[[],[]];l=NaN;for(i=0;i<x.length;i++){if(l>x[i])z[1].push(x[i]);else z[0].push(x[i]);l=x[i]}return z} Basically, asks is the current item greater than the last item, add to the first list. Otherwise, add to the second. Found out during this that comparing any number to `NaN` will always result `false`. Interesting! Explanation: (x) => { // Create function z = [[], []]; // Initialize dropsort output l = NaN; // Initialize last element for (i = 0; i < x.length; i++) { // For each item in input... if (l > x[i]) // If current item is greater than previous z[1].push(x[i]); // Then add it to the first part of output else // Elsewise z[0].push(x[i]); // Add it to the nonordered part of the dropsort l=x[i]; // Set last item to current item } // Repeat return z // Return finished dropsort } // End function [Try it online!](https://tio.run/##dc9LDsIgEAbgvaeYJUTaQH0H8QhegLBoFBWDpenDNDWevY5GjZq6mExgvvAzx/SclpvC5VWUha3tupMiDVWrS6u0NkwbI71ap2u5CwVxiku3bGJvs311kG44pBe3I37VaGdoq4WJ87o8kMdRWl9aaDX/uvTq3q@Freoig/babUJWBm9jH/bkRLRgkDCYMBgzGDGYGUrl4NdwBhFCkfRNoxlO51j4yAv2uQUDVIinmPcvRuAfBJpE/BXPWtxbH3rv8kzrM/xja/7aursB)